ParseResult functor
moved filter into combinators