This is due to how Nim handles literals. The followimg exhibits the same 
behaviour.
    
    
    proc doThing(i: float) = discard
    proc doThing(i: float32) = discard
    doThing 10
    
    
    Run

Yes `typeof(10)` is `int` but not all int literals are `int`, context changes 
their type. Consider `var a: byte = 255` or `var a: float = 3` the compiler 
implicitly converts to the type. In the case of an overloaded call like this it 
does not know to convert to the generic 8bit ints or the generic remainder. To 
a point if we do `echoI int(56)` it calls the expected procedure and runs.

Reply via email to