anchor.diff:      || env.lax
       then e
       else if lcomp_has_trivial_postcondition lc
  -         && Option.isSome (Env.try_lookup_lid env C.with_type_lid) //and we're not very early in prims
  +         && Option.isSome (Env.try_lookup_lid env C.with_type_lid) //we have with_type in the environment
       then let u = match uopt with
                    | Some u -> u
                    | None -> env.universe_of env lc.res_typ
  
positive.code:               match aux () with
                | Inl (c, reason) -> Inl (c, trivial_guard, reason)
                | Inr reason -> Inr reason in
              if Option.isNone (Env.try_lookup_effect_lid env C.effect_GTot_lid) //if we're very early in prims
              then if U.is_tot_or_gtot_comp c1
                   && U.is_tot_or_gtot_comp c2
                   then Inl (c2, trivial_guard, "Early in prims; we don't have bind yet")
                   else raise_error (Errors.Fatal_NonTrivialPreConditionInPrims,
                                     "Non-trivial pre-conditions very early in prims, even before we have defined the PURE monad")
                                     (Env.get_range env)
              else if U.is_total_comp c1
              then (*
                    * Helper routine to close the compuation c with c1's return type
  
negative.code:                       mk_bind c1 b c2 g
                   else if Options.vcgen_optimize_bind_as_seq()
                        && lcomp_has_trivial_postcondition lc1
                        && Option.isSome (Env.try_lookup_lid env C.with_type_lid) //and we have with_type in the environment
                   then // case (b)
                        let e1' =
                          if Options.vcgen_decorate_with_type()
  