anchor.diff:                    ignore <| Rel.discharge_guard env g;
                     norm env0 t) in
           let env = if termination_check_enabled lb.lbname e t
  -                  //&& Env.should_verify env (* store the let rec names separately for termination checks *)  -- AR: commenting as part of guarding letrecs even in lax mode
  +                  && Env.should_verify env (* store the let rec names separately for termination checks *)
                     then {env with letrecs=(lb.lbname,t)::env.letrecs}
                     else Env.push_let_binding env lb.lbname ([], t) in //no polymorphic recursion on universes
           let lb = {lb with lbtyp=t; lbunivs=univ_vars; lbdef=e} in
  
positive.code:                 in
  
                  let envbody, bs, g, c = check_actuals_against_formals env bs bs_expected in
                  let envbody, letrecs = mk_letrec_env envbody bs c in //if Env.should_verify env then mk_letrec_env envbody bs c else envbody, [] in  -- AR: perhaps ok to guard even in lax mode?
                  let envbody = Env.set_expected_typ envbody (U.comp_result c) in
                  Some t, bs, letrecs, Some c, None, envbody, body, g
  
  
negative.code: (* guards the recursively bound names with a termination check                                              *)
  (************************************************************************************************************)
  let guard_letrecs env actuals expected_c : list<(lbname*typ)> =
      if not (Env.should_verify env) then env.letrecs else
      match env.letrecs with
      | [] -> []
      | letrecs ->
  