The program below compiles. Clearly the "if" constraints in my original example
are causing trouble. It seems like a bug to me.
import std.stdio;
void Foo(T:T*)(T arg) {
writeln("arg of Foo:", arg, typeid(T));
}
void main() {
Foo!(long*)(54);
}