Returns a shallow copy of the receiver.
Override this method in all subclasses, return its own type.
@override Parser<R> copy() => WhereParser<R>(delegate, predicate, factory);