 N.Operators = R.foldl(R.mixin, {}, [simpleOperators
   recursiveOperators
   recursiveFunctionOperators
+  recursiveOperatorsWithTrailingArgs
 ])

      {'}'}
    </span>


operatorClasses = [
  R.mapObj(R.always(SimpleOperator))(simpleOperators)
  R.mapObj(R.always(RecursionFunctionOperator))(recursiveFunctionOperators)
  R.mapObj(R.always(RecursiveOperator))(recursiveOperators)
]

OperatorClasses = R.foldl(R.mixin, {}, operatorClasses)


getClosedOverArgName = (recursionLevel) ->
  'outerValue' + (recursionLevel && recursionLevel + 1 || '')

simpleCombinerFunction = 'function(first, second){ return {first: first, second: second}; }'

simpleOperators =
  map:
