It's not actually calling 
    
    
    proc g[T](d: string)
    
    
    Run

without B.

What it's doing is

instantiate g1 withB

instantiate g2 withB

instantiate g1 withC

instantiate g2 withC

call g1 withB

call g2 withC

It only comes up when you explicitly pass in generic parameters. All functions 
that match the generic parameters are instantiated.

Reply via email to