ElementType!Source does not require that Source is a range, yet Source has to be a range as a popFront function is required in the body of these parse functions. Thus, isInputRange!Source.