import std.stdio;

template W(T, T U) { string W = U.stringof; }

enum En { A }

void main() {
 writeln(W!(int, 123)); // "U"と出力
 writeln(W!(string, "str")); // "U"と出力
 writeln(W!(En, En.A)); // "En"と出力
}

この3番目が"En"になるのは何でなんだぜ?