http://blog.thecybershadow.net/2015/04/28/the-amazing-template-which-does-nothing/
A truly polymorphic identity function in D would be more involved:
template id(a...) if (a.length == 1)
{
static if (__traits(compiles, { alias id = a[0]; } ))
alias id = a[0];
else
enum id = a[0];
}
static assert(is(id!int == int));
static assert(id!1 == 1);
Also, an 'isEqual' template would be needed to unify 'isSame',
'is' and '=='.
