_tldr; if the size of integer is important, always opt to explicit conversion_

* * *

you can define your own `+` operator for your case
    
    
    proc `+`(x: uint16, y: uint32): uint32 = x.uint32 + y
    
    
    Run

But then the definition then become tedious if you have to define another with
    
    
    proc `+`(x: uint32, y: uint64): uint64 = x.uint64 + y
    
    
    Run

again and again. So the `+` is defined as generic. Since generic doesn't know 
which type should it bind to, so it's logical choice to bind to first argument.

Reply via email to