anchor.diff:      let argsMap = args |> List.map (fun a -> a.Name, a) |> Map.ofList
   
   
  -    let exd, s = ex.run { arguments = argsMap; locals = Map.empty; declared = Map.empty }
  +    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
   //
  
positive.code: open ICSharpCode.NRefactory.TypeSystem
  open Microsoft.FSharp.Quotations
  
  type ExprState = { arguments : Map<string, Var>; locals : Map<string, Var>; declared : Map<string, Var> }
  type ExprResult<'a> = { run : ExprState -> 'a * ExprState}
  
  [<AutoOpen>]
  
negative.code:         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
  