anchor.diff:          let (reason, term, ctx_u, range, should_check) = i in
           if not should_check then i
           else match FStar.Syntax.Unionfind.find ctx_u.ctx_uvar_head with
  -        | Some _ -> i //already solved; nothing to do
  +        | Some _ ->
  +          if Env.debug env <| Options.Other "Rel"
  +          then printfn "%s already solved; nothing to do" (Print.ctx_uvar_to_string ctx_u);
  +          i //already solved; nothing to do
           | None ->
             begin
             match BU.prefix_until (function Binding_var _ -> true | _ -> false) ctx_u.ctx_uvar_gamma with
  
positive.code:     in
      let g = Rel.solve_deferred_constraints env ({g with deferred=solve_now}) in
      let g = {g with deferred=defer} in
      let is =
        List.fold_left (fun is (x, _) -> List.map (aux x) is) g.implicits xs
      in
      let g = {g with implicits=is} in
      if Env.debug env <| Options.Other "Rel"
      then BU.print1 "Closed implicits, guard is\n\t%s\n"
                             (guard_to_string env g);
      g
  
  
negative.code:               let ctx_v, t_v = new_implicit_var_aux reason range gamma_tail binders_pfx typ in
                let sol = S.mk_Tm_app t_v [S.as_arg (S.bv_to_name x)] None range in
                if Env.debug env <| Options.Other "Rel"
                then BU.print3 "Closing implicit %s with binder %s to %s\n"
                              (Print.bv_to_string x)
                              (Print.ctx_uvar_to_string ctx_u)
                              (Print.term_to_string sol);
                Unionfind.change ctx_u.ctx_uvar_head sol;
  