pub trait Parse<O, E, P> { fn parse(&mut self, p: P) -> Result<O, Error<E>> where for<'a> P: Parser<&'a [u8], O, E>; }