anchor.diff:      tc_term=tc_term;
       typeof_tot_or_gtot_term=typeof_tot_or_gtot_term;
       typeof_well_typed_tot_or_gtot_term = typeof_tot_or_gtot_term_fastpath;
  -    tc_check_well_typed_tot_or_gtot_term_with_fallback =
  -      tc_check_tot_or_gtot_term_maybe_fastpath;
       universe_of=universe_of;
       universeof_well_typed_term=universeof_fastpath;
   
  
positive.code: type goal = term
  
  type must_tot = bool
  type from_tac = bool
  
  type lift_comp_t = env -> comp -> comp * guard_t
  
  
negative.code:   tc_term :env -> term -> term * lcomp * guard_t; (* typechecker callback; G |- e : C <== g *)
    typeof_tot_or_gtot_term :env -> term -> must_tot -> term * typ * guard_t; (* typechecker callback; G |- e : (G)Tot t <== g *)
    universe_of :env -> term -> universe; (* typechecker callback; G |- e : Tot (Type u) *)
    typeof_well_typed_tot_or_gtot_term :env -> term -> option<typ>; (* typechecker callback, uses fast path, see Env.typeof_well_typed_tot_or_gtot_term_maybe_fastpath for a version that falls back on the slow path *)
    universeof_well_typed_term :env -> term -> option<universe>; (* typechecker callback, uses fast path returns None on failure *)
  
    use_bv_sorts   :bool;                              (* use bv.sort for a bound-variable's type rather than consulting gamma *)
  