anchor.diff:                if is_unopteq then TcInductive.unoptimized_haseq_scheme sig_bndle tcs datas env tc_assume
                 else TcInductive.optimized_haseq_scheme sig_bndle tcs datas env tc_assume
               in
  -            { sigel = Sig_bundle(tcs@datas, lids);
  -              sigquals = quals;
  -              sigrng = Env.get_range env;
  -              sigmeta = default_sigmeta;
  -              sigattrs = []  }::ses, data_ops_ses in
  +            [ sig_bndle ], ses@data_ops_ses in  //append hasEq axiom lids and data projectors and discriminators lids
       ignore (Env.pop env "tc_inductive");
       res
   
  
positive.code: 
    | Sig_bundle(ses, lids) ->
      let env = Env.set_range env r in
      let ses, projectors_ses = tc_inductive env ses se.sigquals lids in
      ses, projectors_ses
  
    | Sig_pragma(p) ->
      U.process_pragma p r;
      [se], []
  
    | Sig_new_effect_for_free (ne) ->
        (* This is only an elaboration rule not a typechecking one *)
  
        // Let the power of Dijkstra generate everything "for free", then defer
  
negative.code:         let _ = recheck_debug "lift-elab" env lift_elab in
          Some ([], lift_elab), ([], lift_wp)
      in
      (* we do not expect the lift to verify, *)
      (* since that requires internalizing monotonicity of WPs *)
      let env = {env with lax=true} in
  