anchor.diff:                                       smt_ok=false;
                                        attempting=probs;
                                        wl_deferred=[];
  -                                     wl_implicits=[];
  -                                     wl_solution_types=[]} in
  +                                     wl_implicits=[]} in
                     let tx = UF.new_transaction () in
                     match solve env wl' with
  -                  | Success (_, defer_to_tac, imps, typs) ->
  +                  | Success (_, defer_to_tac, imps) ->
                       UF.commit tx;
  -                    Some (extend_wl wl defer_to_tac imps typs)
  +                    Some (extend_wl wl defer_to_tac imps)
   
                     | Failed _ ->
                       UF.rollback tx;
  
positive.code:                                           (Print.lid_to_string c1.effect_name)
                                            (Print.lid_to_string c2.effect_name))) env.range
               in
               if BU.physical_equality wpc1 wpc2
               then solve_t env (problem_using_guard orig c1.result_typ problem.relation c2.result_typ None "result type") wl
               else let c2_decl, qualifiers = must (Env.effect_decl_opt env c2.effect_name) in
  
negative.code:    end;
     let g =
       match solve_and_commit env wl fail with
       | Some (_::_, _, _) when not defer_ok ->
         failwith "Impossible: Unexpected deferred constraints remain"
  
       | Some (deferred, defer_to_tac, imps) ->
         {g with deferred=deferred;
                 deferred_to_tac=g.deferred_to_tac@defer_to_tac;
                 implicits=g.implicits@imps}
  
       | _ ->
         failwith "Impossible: should have raised a failure already"
  