pub trait ParserIteratorBase {
type Input;
type Element;
// Provided methods
fn emptiable() -> bool
where Self: Sized { ... }
fn collect<V: FromIterator<Self::Element>>(self) -> Collect<Self, V>
where Self: Sized { ... }
}