anchor.diff:          Some (mk_tm_type (S.U_max (uc::us))))
   
         | ({binder_bv=x;binder_qual=imp})::bs ->
  +        // BU.print2 "type_of_well_typed_term computed universe of %s as : %s\n"
  +        //   (Print.term_to_string x.sort) (match universe_of_well_typed_term env x.sort with
  +        //                                  | None -> "None"
  +        //                                  | Some u -> Print.univ_to_string u);
           bind_opt (universe_of_well_typed_term env x.sort) (fun u_x ->
           let env = Env.push_bv env x in
           aux env (u_x::us) bs)
  
positive.code:               //machine integer pattern, cf. #1572
                let _, t, _ =
                  let env, _ = Env.clear_expected_typ env in
                  env.type_of_tot_or_gtot_term env pat_exp true
                in
                [U.mk_decidable_eq t (force_scrutinee ()) pat_exp]
  
  
negative.code: //     | None -> slow_check ()
  //     | Some g -> g
  
  let tc_check_tot_or_gtot_term_maybe_fastpath (env:env) (t:term) (k:typ) (must_tot:bool) (uvars_ok:bool) =
    let env = Env.set_expected_typ ({env with use_bv_sorts=true}) k in
  
    let slow_path (reason:string) (topt:option<term>) =
      //BU.print1 "Fast path failed: %s\n" reason;
      // if true //reason <> "" //Env.debug env <| Options.Other "FastImplicits"
      // then BU.print5 "Fast check for (%s <: %s) at %s failed because %s %s\n"
      //        (Print.term_to_string t)
      //        (Print.term_to_string k)
      //        (Range.string_of_range t.pos)
      //        reason
      //        (match topt with
      //         | None -> ""
      //         | Some t -> "(" ^ Print.term_to_string t ^ ")");
  
      //expected type is already set in the env
      let _, _, g = env.typeof_tot_or_gtot_term env t must_tot in
      g in
    
    let continue_fast_path t = uvars_ok || (t |> Free.uvars |> set_is_empty && t |> Free.univs |> set_is_empty) in
  
    let finish_fast_path env t k' k =
      //BU.print_string "Finishing on fast path!\n";
      if env.phase1 then Env.trivial_guard
      else TcUtil.check_has_type env t k' k in
  
    if uvars_ok && env.phase1
    then Env.trivial_guard
  