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