anchor.diff:    ALPHA tm res
   
   let GEN_ALPHA_CONV v tm =
  -  if is_abs tm then ALPHA_CONV v tm else
  -  let b,abs = dest_comb tm
  -  AP_TERM b (ALPHA_CONV v abs)
  +    if is_abs tm then
  +        ALPHA_CONV v tm
  +    else
  +        let b,abs = dest_comb tm
  +        AP_TERM b (ALPHA_CONV v abs)
   
   let MK_BINOP op (lth,rth) =
     MK_COMB(AP_TERM op lth,rth)
  
positive.code: let CACHE_CONV =
      let ALPHA_HACK th =
          let tm' = lhand(concl th)
          fun tm -> if tm' = tm then th else TRANS (ALPHA tm tm') th
      fun conv ->
          let net = ref empty_net
          fun tm ->
              try tryfind (fun f -> f tm) (lookup tm (!net))
              with Failure _ ->
                  let th = conv tm
                  net := enter [] (tm,ALPHA_HACK th) (!net)
                  th
  *)
  
  
  
negative.code:   match tm with
    | Comb(Comb(op',l),r) when op' = op ->
        let l,r = dest_binop op tm
        let lth = DEPTH_BINOP_CONV op conv l
        let rth = DEPTH_BINOP_CONV op conv r
        MK_COMB(AP_TERM op' lth,rth)
    | _ -> conv tm
  
  