Yeah, file an issue. They work like in C++ or other languages, the first usage 
binds the type to the type variable other usages check for consistency with the 
bound type. As mratsim already explained:

> The signature of the proc is proc +[T: SomeInteger](x, y: T): T T 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.

.

Reply via email to