anchor.diff:            | None -> [ { se with sigel = Sig_new_effect (ne) } ]
         in
   
  -      [], ses @ effect_and_lift_ses
  +      [], ses @ effect_and_lift_ses, env0
   
     | Sig_new_effect(ne) ->
       let ne =
  
positive.code:                                                              (lift |> must |> fst |> List.length |> string_of_int))) r;
      let sub = {sub with lift_wp=Some lift_wp; lift=lift} in
      let se = { se with sigel = Sig_sub_effect(sub) } in
      [se], []
  
    | Sig_effect_abbrev(lid, uvs, tps, c, flags) ->
      //assert (uvs = []); AR: not necessarily, two phases
      let env0 = env in
  
      //AR: open universes in tps and c if needed
      let env, uvs, tps, c =
  
negative.code:     in
      aux l1 l2
  
  let tc_decl' env0 se: list<sigelt> * list<sigelt> * Env.env =
    let env = env0 in
    TcUtil.check_sigelt_quals env se;
    let r = se.sigrng in
    match se.sigel with
  