@NotNull
    @Override
    public Pair<R2, State> parse(@NotNull List<Token<T>> tokens, @NotNull State state) throws ParserException {
      final Pair<R, State> result = myParser.parse(tokens, state);
      return Pair.create(myFunction.fun(result.getFirst()), result.getSecond());
    }
@NotNull
    @Override
    public Pair<R2, State> parse(@NotNull List<Token<T>> tokens, @NotNull State state)