class TypeHint { public T method(T)() if (is(T == int)) { return T.init; } } ... class TypeHint { public T method(T : int)() { return T.init; } } ... Are the two above class declarations achieving the same thing? i.e. is the type hint of the second snippet shorthand for the first's 'if'? If so which is preferred?