@bitstorm: well in case of simple types like int64, int32, float, ... the 
compiler is clever enough to get the correct type. For example (tested code): 
    
    
    import typetraits
    
    template myadd[L,R](lhs: L, rhs: R): auto =
      lhs + rhs
    
    var intAndFloat = myadd(5, 5.0)
    # echos "10.0 is float"
    echo $intAndFloat & " is " & intAndFloat.type.name
    
    var a: int64 = 5
    var b: int32 = 5
    var int64Andint32 = myadd(a, b)
    # echos "10 is int64"
    echo $int64Andint32 & " is " & int64Andint32.type.name
    

Would you mind to give a more concrete example with your "generic container 
types"?

Reply via email to