Well, as long as generic proc's can't be precompiled, in fact rendering an 
(untyped) AST only, a complete type-check can't be performed.

That aside, we define at first our template, the fn1, basically an identity 
function

> template fn1(a: typed) = a

and now, a function without generics

proc bar3(a: aliassym fn1 , b: int) : int = a(b)

... and this will compile or it _could_ compile at least, presumed that the 
proc body returns an int (what it does with the witness fn1). The proc gets 
marked with "overloadable", because other templates could be passed. The newly 
passed template could e.g. have an `echo a` or something else. Anyway, the 
type-related behaviour is completely defined by the witness.

Reply via email to