anchor.diff:    | Tm_type u ->
       Some (mk_tm_type (U_succ u))
   
  -  | Tm_abs(bs, body, Some ({residual_effect=eff; residual_typ=Some tbody})) ->
  +  | Tm_abs(bs, body, Some ({residual_effect=eff; residual_typ=tbody})) ->
       let mk_comp =
         if Ident.lid_equals eff Const.effect_Tot_lid
         then Some S.mk_Total'
  
positive.code:           if not must_tot ||
               lid_equals eff Const.effect_Tot_lid ||
               N.non_info_norm env k
            then TcUtil.check_has_type env t k' k
            else raise_error (Errors.Fatal_UnexpectedImplictArgument,
                   (BU.format1 "Implicit argument %s is GTot, expected a Tot" (Print.term_to_string t)))
                   t.pos
  
negative.code:   let continue_fast_path t = uvars_ok || (t |> Free.uvars |> set_is_empty && t |> Free.univs |> set_is_empty) in
  
    if not (continue_fast_path t)
    then slow_path "" (Some t)
    else if not (continue_fast_path k)
    then slow_path "" (Some k)
    else
      match type_of_well_typed_tot_or_gtot_term env t with
      | None -> slow_path "could not compute the type" None
      | Some k' ->
        if not (continue_fast_path k')
        then slow_path "" (Some k')
        else
          let eff_opt = effect_of_well_typed_tot_or_gtot_term env t in
          match eff_opt with
  