Returns a shallow copy of the receiver.
Override this method in all subclasses, return its own type.
@override MapParser<T, R> copy() => MapParser<T, R>(delegate, callback, hasSideEffects);