anchor.diff:  
       type ConvResult =
       | AsExpression of Expression
  -    | AsLetRecExpression of ParameterExpression * Expression * Expression
  +    | AsLetRecFunction of ParameterExpression * Expression * Expression
  +//    | AsLetRecRecord of ParameterExpression * Expression * Expression
   
       let asExpr x = AsExpression x
       let asExpression x = (x :> Expression)
  
positive.code:                     exprConstructor(e1, e2, false, intrinsic.MakeGenericMethod([|x1.Type|])) |> asExpr
  
              match inp with 
  //            | SpecificCall <@ ( .. ) @> (_,_,[x1;x2]) -> transComparison x1 x2 Expression.Equal              Expression.Equal              genericEqualityIntrinsic
  
              | Λ ``-> generic=`` (_,_,[x1;x2])
              | Λ ``-> =``  (_,_,[x1;x2]) -> transComparison x1 x2 Expression.Equal              Expression.Equal              genericEqualityIntrinsic
              | Λ ``-> >``  (_,_,[x1;x2]) -> transComparison x1 x2 Expression.GreaterThan        Expression.GreaterThan        genericGreaterThanIntrinsic
  
negative.code:                             state) |> asExpression;
  
                      if letrec.IsSome then
                          AsLetRecFunction (theFuncObject, assignToConstruction, assignState)
                      else
                          Expression.Block (
                              [ theFuncObject ],
  