function pipeParseResult(namespace, ...functions) {
  // Return a closure that takes the element to pipe
  return (element) => {
    const run = (accumulator, func) => {
      const elements = R.reject(isAnnotation, accumulator);
      let parseResult = func(...elements);

      if (!isParseResult(parseResult)) {
        // Result is either a ParseResult, or it is an element that can be
        // wrapped in a parse result
        parseResult = new namespace.elements.ParseResult([parseResult]);
      }

      return concatParseResult(namespace, parseResult.content, accumulator.annotations.elements);
    };

    return R.reduceWhile(hasNoErrorsAndHasValue, run, new namespace.elements.ParseResult([element]), functions);
  };
}
/**
 * Performs left-to-right composition of one or more ParseResult-returning
 * functions. The leftmost function may have any arity; the remaining functions
 * must be unary.
 *
 * All of the annotations are collected and merged into the final resultant
 * parse result. The pipe will only continue if the function returns a
 * value, if the function returns an error, the pipe will also fail early.
 *
 * @func
 * @category Function
 * @sig ((a -> ParseResult b), (b -> ParseResult c), ..., (y -> ParseResult z)) -> (a -> ParseResult z)
 * @param {...Function} functions
 * @return {Function}
 * @see R.pipe
 * @private
 */
Performs left-to-right composition of one or more ParseResult-returning
functions. The leftmost function may have any arity; the remaining functions
must be unary.

All of the annotations are collected and merged into the final resultant
parse result. The pipe will only continue if the function returns a
value, if the function returns an error, the pipe will also fail early.


Performs left - to - right composition of one or more ParseResult - returning functions . The leftmost function may have any arity ; the remaining functions must be unary . All of the annotations are collected and merged into the final resultant parse result . The pipe will only continue if the function returns a value if the function returns an error the pipe will also fail early .
function pipeParseResult(namespace, ...functions) {
  return (element) => {
    const run = (accumulator, func) => {
      const elements = R.reject(isAnnotation, accumulator);
      let parseResult = func(...elements);
      if (!isParseResult(parseResult)) {
        parseResult = new namespace.elements.ParseResult([parseResult]);
      }
      return concatParseResult(namespace, parseResult.content, accumulator.annotations.elements);
    };
    return R.reduceWhile(hasNoErrorsAndHasValue, run, new namespace.elements.ParseResult([element]), functions);
  };
}
function pipeParseResult ( namespace , ... functions ) { return ( element ) => { const run = ( accumulator , func ) => { const elements = R . reject ( isAnnotation , accumulator ) ; let parseResult = func ( ... elements ) ; if ( ! isParseResult ( parseResult ) ) { parseResult = new namespace . elements . ParseResult ( [ parseResult ] ) ; } return concatParseResult ( namespace , parseResult . content , accumulator . annotations . elements ) ; } ; return R . reduceWhile ( hasNoErrorsAndHasValue , run , new namespace . elements . ParseResult ( [ element ] ) , functions ) ; } ; }
Performs left-to-right composition of one or more ParseResult-returning
 functions.
Performs left - to - right composition of one or more ParseResult - returning functions .
// Return a closure that takes the element to pipe // Result is either a ParseResult, or it is an element that can be // wrapped in a parse result