public static ParserResult <I, O> ConsumedError <I, O>(ParserError error) => new ParserResult <I, O>(ResultTag.Consumed, ReplyIO.Error <I, O>(error));
public Reply <I, U> Select <U>(Func <O, U> map) => Tag == ReplyTag.Error ? ReplyIO.Error <I, U>(Error) : ReplyIO.OK(map(Result), State, Error);
public static ParserResult <I, O> EmptyError <I, O>(ParserError error) => new ParserResult <I, O>(ResultTag.Empty, ReplyIO.Error <I, O>(error));
public Reply <I, U> Project <S, U>(S s, Func <S, O, U> project) => Tag == ReplyTag.Error ? ReplyIO.Error <I, U>(Error) : ReplyIO.OK(project(s, Result), State, Error);