public static Parser <TToken, T> Chainr <TToken, T>( Parser <TToken, T> parser, Parser <TToken, Func <T, T, T> > op) { return(from lhs in parser from resultValue in InternalCombinator.ChainrRest <TToken, T>(parser, op, lhs) select resultValue); }