anchor.diff:                if not probs.defer_ok 
                 && flex_refine_inner <= rank 
                 && rank <= flex_rigid 
  -              then 
  -                match solve_flex_rigid_join env tp probs with
  +              then match solve_flex_rigid_join env tp probs with
                       | None -> solve_t' env (maybe_invert tp) probs //giveup env "join doesn't exist" hd
  +                    | Some wl -> solve env wl
  +              else if not probs.defer_ok
  +                   && rigid_flex <= rank
  +                   && rank <= refine_flex
  +                   && false
  +              then match solve_rigid_flex_meet env tp probs with
  +                    | None -> solve_t' env (maybe_invert tp) probs //giveup env "meet doesn't exist" hd
                       | Some wl -> solve env wl
                 else solve_t' env (maybe_invert tp) probs
            end
  
positive.code:         solve env (defer msg orig wl)
      end
      else giveup env msg orig 
  
  (******************************************************************************************************)
  (* The case where u < t1, .... u < tn: we solve this by taking u=t1/\.../\tn                          *)
  
negative.code:    aux (flex_flex + 1, None, []) wl.attempting
  
  let is_flex_rigid rank = flex_refine_inner <= rank && rank <= flex_rigid
  let is_rigid_flex rank = rigid_flex <= rank && rank <= refine_flex
  
  (* ----------------------------------------------------- *)
  (* Solving universe equalities                           *)
  (* ----------------------------------------------------- *)
  type univ_eq_sol = 
    | UDeferred of worklist
    | USolved   of worklist
  