anchor.diff:    if Env.debug env <| Options.Other "Rel" then
       BU.print1 "\n\t\tDeferring %s to a tactic\n" (prob_to_string env orig);
     let wl = solve_prob orig None [] wl in
  -  let wl = {wl with wl_deferred_to_tac=(wl.ctr, Thunk.mkv reason, orig)::wl.wl_deferred_to_tac} in
  +  let wl = {wl with wl_deferred_to_tac=(wl.ctr,
  +                                        Deferred_to_user_tac,
  +                                        Thunk.mkv reason, orig)::wl.wl_deferred_to_tac} in
     solve env wl
   
   and maybe_defer_to_user_tac (env:Env.env) prob reason wl : solution =
  
positive.code:                                                 //will insert the appropriate lifts.
  }
  
  let as_deferred (wl_def:list<(int * lstring * prob)>) : deferred =
    List.map (fun (_, m, p) -> Thunk.force m, p) wl_def
  
  let as_wl_deferred wl (d:deferred): list<(int * lstring * prob)> =
    List.map (fun (m, p) -> wl.ctr, Thunk.mkv m, p) d
  
  (* --------------------------------------------------------- *)
  (* <new_uvar> Generating new unification variables/patterns  *)
  
negative.code:             let u, wp = List.hd stronger_ct.comp_univs, fst (List.hd stronger_ct.effect_args) in
              Env.pure_precondition_for_trivial_post env u stronger_ct.result_typ wp Range.dummyRange in
  
            let sub_probs =
              ret_sub_prob::(is_sub_probs@
                            f_sub_probs@
                            g_sub_probs@
                            (g_lift.deferred |> List.map (fun (_, _, p) -> p))) in
            let guard =
              let guard = U.mk_conj_l (List.map p_guard sub_probs) in
              match g_lift.guard_f with
  