anchor.diff:  let resolveExpression exprs initialBindings settings (finalReduction: bool) = 
   
       let rec (|ResolveSingle|_|) bindings lists =
  -            let inline reduceSubexpr subExpr = reduceExpressions [] [subExpr] bindings |> fst
               let inline reduceSubexprCont subExpr  = 
                   Cont {
                       let! res = reduceExpressionsCont [] [subExpr] bindings
  
negative.code:     and reduceExpressions (lleft: ExprRep list) (lright: ExprRep list) (bindings: Bindings) : ExprRep list * Bindings =
         reduceExpressionsCont lleft lright bindings id
  
      and reduceEachExpression exprs bindings =
          Cont {
              match exprs with
              | h :: t -> 
                  let! res = reduceExpressionsCont [] [h] bindings
                  let res = res |> fst
                  let! rest = reduceEachExpression t bindings
                  let comb = res :: rest
                  return comb 
              | [] -> return []
          }
  
      // Tries to merge/convert local tokens, if it can't it moves to the right
      and reduceExpressionsCont (lleft: ExprRep list) (lright: ExprRep list) (bindings: Bindings) cont : ExprRep list * Bindings =
          match lleft, lright with
  