The signature of the proc is
proc `+`[T: SomeInteger](x, y: T): T
RunT is bound to uint32 in the first case, and we can convert uint16 to uint32 losslessly. In the second case, T is bound to uint16 and we can't convert uint32 to uint16 losslessly.
