anchor.diff:                      | _ -> failwith "asdsad"
               | _ ->
                   failwith ""
  -
   
       let ret (e : Expr) =
           let m = retMethod.MakeGenericMethod [|e.Type|]
  
positive.code:     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 ex = exd []
      let ex2 = ex |> FSharp.removeImperativeReturn |> FSharp.removeRetFunctions
  
      printfn "%A" ex2
  //
  //    printfn "%A" b
  //
  
negative.code: open ICSharpCode.NRefactory.TypeSystem
  open Microsoft.FSharp.Quotations
  
  type ExprState = { args : list<Var>; arguments : Map<string, Var>; locals : Map<string, Var> }
  type ExprResult<'a> = { run : ExprState -> 'a * ExprState}
  
  [<AutoOpen>]
  