anchor.diff:       reason=reason::p_reason orig;
        loc=p_loc orig;
        rank=None;
  -}
  +    } in
  +    def_check_prob reason (TProb p);
  +    p
  +
   let guard_on_element wl problem x phi =
       match problem.element with
           | None ->
  
positive.code:                             (print_ctx_uvar uv)
                              (Print.term_to_string phi);
          let phi = U.abs xs phi (Some (U.residual_tot U.ktype0)) in
          def_check_closed_in (p_loc prob) ("solve_prob'" ^ string_of_int (p_pid prob)) (List.map fst uv.ctx_uvar_binders) phi;
          U.set_uvar uv.ctx_uvar_head phi
      in
      let xs, uv = p_guard_uvar prob in
  
negative.code:   then BU.print3 "sub_comp of %s --and-- %s --with-- %s\n" (Print.comp_to_string c1) (Print.comp_to_string c2) (if rel = EQ then "EQ" else "SUB");
    let prob, wl = new_problem (empty_worklist env) env c1 rel c2 None (Env.get_range env) "sub_comp" in
    let prob = CProb prob in
    def_check_prob "sub_comp" prob;
    with_guard env prob <| solve_and_commit env (singleton wl prob true)  (fun _ -> None)
  
  let solve_universe_inequalities' tx env (variables, ineqs) =
  