Applicative style argument accumulator functions inspired by the FParsec.Pipes library. It works by weaving a single continuation argument like a chain, kind of like the pipe function of FParsec but with a arbitrary number of arguments.

The snippet defines a combinator 'tailrec' that can be used to express tail-recursive functions. If you use 'tailrec' and do not mark your function as recursive, then the function will be a tail-recursive one.