anchor.diff:      let tc_universe_vars = List.map snd tcs in
       let g = {g with univ_ineqs=tc_universe_vars, snd (g.univ_ineqs)} in
   
  -    if Env.debug env <| Options.Other "GenUniverses"
  +    if Env.debug env0 <| Options.Other "GenUniverses"
       then BU.print1 "@@@@@@Guard before (possible) generalization: %s\n" (Rel.guard_to_string env g);
   
  -    Rel.force_trivial_guard env g;
  -    if List.length univs = 0 then generalize_and_inst_within env1 g tcs datas
  +    Rel.force_trivial_guard env0 g;
  +    if List.length univs = 0 then generalize_and_inst_within env0 g tcs datas
       else (List.map fst tcs), datas
     in
   
  
positive.code:   then raise_error (Errors.Fatal_NonInductiveInMutuallyDefinedType, ("Mutually defined type contains a non-inductive element")) (Env.get_range env);
  
    //AR: adding this code for the second phase
    //    univs need not be empty, so open all along
    let univs =
      if List.length tys = 0 then []
      else
  
negative.code: 
    let env0 = env in
  
    (* Check each tycon *)
    let env, tcs, g = List.fold_right (fun tc (env, all_tcs, g)  ->
      let env, tc, tc_u, guard = tc_tycon env tc in
      let g' = Rel.universe_inequality S.U_zero tc_u in
      if Env.debug env Options.Low then BU.print1 "Checked inductive: %s\n" (Print.sigelt_to_string tc);
      env, (tc, tc_u)::all_tcs, Env.conj_guard g (Env.conj_guard guard g')
    ) tys (env, [], Env.trivial_guard)
    in
  
    (* Check each datacon *)
  