anchor.diff:          varEnv        : Map<Var,Expression>
           letrec        : option<Var>
       }
  -    let asExpr x = (x :> Expression), None
  +
  +    type ConvResult =
  +    | AsExpression of Expression
  +    | AsLetRecExpression of ParameterExpression * Expression * Expression
  +
  +
  +    let asExpr x = AsExpression x
       let asExpression x = (x :> Expression)
   
       let bindingFlags = BindingFlags.Public ||| BindingFlags.NonPublic
  
positive.code:         f7hole := f7
          f8hole := f8
          B.Invoke(f1,f2,f3,f4,f5,f6,f7,f8)
  
      type FuncFSharp<'state,'a> (f:Func<'state,'a>) =
          inherit FSharpFunc<unit, 'a>()
          [<Core.DefaultValue false>] val mutable State : 'state
  
negative.code:     /// concert with later versions of LINQ.
      let rec ConvExpr (env:ConvEnv) (inp:Expr) = 
          match LetRecConvExpr env inp with
          | AsExpression expr -> expr
          | _ -> failwith "Invalid logic"
      and LetRecConvExpr (env:ConvEnv) (inp:Expr) = 
         //printf "ConvExpr : %A\n" e;
          match inp with 
  