anchor.diff:      |> List.map (fun field -> field.Name :: path, field)
       |> List.map (fun (fpath, field) -> genFieldWalker instance1 instance2 field fpath dispatchOnType)
       |> List.reduce (fun e1 e2 ->  sequenceExprs e1 e2) 
  -//    |> List.reduce (fun e1 e2 -> e1) 
   
   let makeFuncionCall (f: obj -> obj -> string list -> unit) (path: string list) (instance1: Expr) (instance2: Expr) =
       let objExpr1 = Expr.Coerce(instance1, typeof<obj>)
  
positive.code: //    | _ -> instance      
        | _ -> failwithf "Unexpected type: %s" (mtype.ToString())
  
  let makeSingleWalker (f: obj -> obj -> string list -> unit) (mtype: Type) (path: string list) : Expr =
      let arg1 = Var("x", mtype, false)
      let useArg1 = Expr.Var(arg1)
      let arg2 = Var("y", mtype, false)
  
negative.code: open Microsoft.FSharp.Reflection
  open Microsoft.FSharp.Quotations
  
  
  let sequenceExprs (expr1: Expr) (expr2: Expr) =
      Expr.Sequential(expr1, expr2)
  
  let sequenceLambda (t1: Type) (t2: Type)=
      let instance1Var = Var("instance1", t1, false)
  