Why does all these pass:
static assert(is(ElementEncodingType!(char[]) == char));
static assert(is(ElementEncodingType!(wstring) ==
immutable(wchar)));
static assert(is(ElementEncodingType!(byte[]) == byte));
static assert(is(ElementEncodingType!(ubyte[]) == ubyte));
auto range = iota(0, 10);
static assert(is(ElementEncodingType!(typeof(range)) == int));
static assert(is(ElementEncodingType!(immutable(ubyte)[]) ==
immutable(ubyte)));
But not this:
static assert(is(ElementEncodingType!(AsciiChar[]) ==
AsciiChar));