It has this nasty imperfection that it breaks as soon as you define two Typedefs on the same line. Which noone ever does except maybe for an obfuscated coding scenario, but still it raises my OCD level.
Or inside a template, but that breaks with an explicit cookie as well.
template Foo(T)
{
alias FooIndex = Typedef!(int, "FooIndex");
}
static assert(!is(Foo!int == Foo!string));
