anchor.diff:          member x.VisitMethodDeclaration(methodDeclaration: MethodDeclaration) : ExprResult<list<Expr> -> Expr> =
               expr {
                   let! body = methodDeclaration.Body.AcceptVisitor(x)
  +                let! args = { run = fun s -> (fun _ -> s.args), s}
   
                   let rec buildLambda (args : list<Var>) (body : Expr) =
                       match args with
  
positive.code:                     | _ -> failwith "asdsad"
              | _ ->
                  failwith ""
  
  
      let ret (e : Expr) =
          let m = retMethod.MakeGenericMethod [|e.Type|]
  
negative.code:     let argsMap = args |> List.map (fun a -> a.Name, a) |> Map.ofList
  
  
      let exd, s = ex.run { args = args; arguments = argsMap; locals = Map.empty  }
  
      let ex = exd []
      let ex2 = ex |> FSharp.removeImperativeReturn |> FSharp.removeRetFunctions
  
      printfn "%A" ex2
  
  
      printfn "%A" (ex2.GetFreeVars() |> Set.ofSeq)
  
  //
  //    printfn "%A" b
  //
  