anchor.diff:          is |> List.map fst |> List.map (SS.subst substs)
         | _ -> raise_error (conjunction_t_error "g's type is not a repr type") r in
       List.fold_left2
  -      (fun g i2 g_i -> Env.conj_guard g (Rel.teq env i2 g_i))
  +      (fun g i2 g_i -> Env.conj_guard g (Rel.layered_effect_teq env i2 g_i (Some conjunction_name)))
         Env.trivial_guard is2 g_sort_is in
   
     let body = SS.subst substs body in
  
positive.code:         is |> List.map fst |> List.map (SS.subst substs)
        | _ -> raise_error (conjunction_t_error "f's type is not a repr type") r in
      List.fold_left2
        (fun g i1 f_i -> Env.conj_guard g (Rel.teq env i1 f_i))
        Env.trivial_guard is1 f_sort_is in
  
    let g_guard =
  
negative.code:     let f_sort = (fst f_b).sort |> SS.subst substs |> SS.compress in
      let f_sort_is = effect_args_from_repr f_sort (Env.is_layered_effect env ct.effect_name) r in
      List.fold_left2
        (fun g i1 i2 -> Env.conj_guard g (Rel.layered_effect_teq env i1 i2 (Some lift_name)))
        Env.trivial_guard c_is f_sort_is in
  
    let lift_ct = lift_c |> SS.subst_comp substs |> U.comp_to_comp_typ in
  