Seems like "is" expression doesn't support type tuples: > pragma(msg, is(short : int)); // true > > enum Test(ARGS...) = is(ARGS[0..2] : ARGS[2..4]); > pragma(msg, is(Test!(int, int, int, int))); // false > pragma(msg, Test!(int, short, int, int)); // false Is it by design, or just not implemented?