I should have been more clear. I left out the case T = C there on purpose. I expected the call f[C]("SM", d) Run
to call proc f[T](k: string, d: string) Run but it is calling proc f[T](d: string) Run instead. Not sure if this is a bug in the compiler or my understanding of how generic functions work when they are overloaded like this.