Your example doesn't work on my compiler.
proc p(a : int) =
echo a
proc printVar*[T:int|float|string](a : T) =
bind p
p(a)
printVar(5)
Runnim gives Error: invalid expression: bind p Oddly enough if you don't call the printVar at all it doesn't give you an error. Nim Compiler Version 0.20.2 [Windows: amd64] Compiled at 2019-07-17 Copyright (c) 2006-2019 by Andreas Rumpf compiled with nim c test.nim I've actually had this problem for a few versions but I assumed you already knew about it before.
