pub type ParserPhantom<I, O, E = ()> = PhantomData<ParserPhantomImpl<I, O, E>>;
struct ParserPhantom<I, O, E = ()>;