Module Extraction_plugin.Miniml
type kill_reason=|Ktype|Kprop|Kimplicit of Names.GlobRef.t * inttype sign=|Keep|Kill of kill_reasontype signature= sign listtype ml_type=|Tarr of ml_type * ml_type|Tglob of Names.GlobRef.t * ml_type list|Tvar of int|Tvar' of int|Tmeta of ml_meta|Tdummy of kill_reason|Tunknown|Taxiomand ml_meta={id : int;mutable contents : ml_type option;}type ml_schema= int * ml_typetype inductive_kind=|Singleton|Coinductive|Standard|Record of Names.GlobRef.t option listtype ml_ind_packet={ip_typename : Names.Id.t;ip_consnames : Names.Id.t array;ip_logical : bool;ip_sign : signature;ip_vars : Names.Id.t list;ip_types : ml_type list array;}type equiv=|NoEquiv|Equiv of Names.KerName.t|RenEquiv of stringtype ml_ind={ind_kind : inductive_kind;ind_nparams : int;ind_packets : ml_ind_packet array;ind_equiv : equiv;}type ml_ident=|Dummy|Id of Names.Id.t|Tmp of Names.Id.t
type ml_branch= ml_ident list * ml_pattern * ml_astand ml_ast=|MLrel of int|MLapp of ml_ast * ml_ast list|MLlam of ml_ident * ml_ast|MLletin of ml_ident * ml_ast * ml_ast|MLglob of Names.GlobRef.t|MLcons of ml_type * Names.GlobRef.t * ml_ast list|MLtuple of ml_ast list|MLcase of ml_type * ml_ast * ml_branch array|MLfix of int * Names.Id.t array * ml_ast array|MLexn of string|MLdummy of kill_reason|MLaxiom|MLmagic of ml_ast|MLuint of Uint63.t|MLfloat of Float64.tand ml_pattern=|Pcons of Names.GlobRef.t * ml_pattern list|Ptuple of ml_pattern list|Prel of intCf. the idents in the branch.
Prel 1is the last one.|Pwild|Pusual of Names.GlobRef.tShortcut for Pcons (r,
Prel n;...;Prel 1) *type ml_decl=|Dind of Names.MutInd.t * ml_ind|Dtype of Names.GlobRef.t * Names.Id.t list * ml_type|Dterm of Names.GlobRef.t * ml_ast * ml_type|Dfix of Names.GlobRef.t array * ml_ast array * ml_type arraytype ml_spec=|Sind of Names.MutInd.t * ml_ind|Stype of Names.GlobRef.t * Names.Id.t list * ml_type option|Sval of Names.GlobRef.t * ml_typetype ml_specif=|Spec of ml_spec|Smodule of ml_module_type|Smodtype of ml_module_typeand ml_module_type=|MTident of Names.ModPath.t|MTfunsig of Names.MBId.t * ml_module_type * ml_module_type|MTsig of Names.ModPath.t * ml_module_sig|MTwith of ml_module_type * ml_with_declarationand ml_with_declaration=|ML_With_type of Names.Id.t list * Names.Id.t list * ml_type|ML_With_module of Names.Id.t list * Names.ModPath.tand ml_module_sig= (Names.Label.t * ml_specif) listtype ml_structure_elem=|SEdecl of ml_decl|SEmodule of ml_module|SEmodtype of ml_module_typeand ml_module_expr=|MEident of Names.ModPath.t|MEfunctor of Names.MBId.t * ml_module_type * ml_module_expr|MEstruct of Names.ModPath.t * ml_module_structure|MEapply of ml_module_expr * ml_module_exprand ml_module_structure= (Names.Label.t * ml_structure_elem) listand ml_module={ml_mod_expr : ml_module_expr;ml_mod_type : ml_module_type;}type ml_structure= (Names.ModPath.t * ml_module_structure) listtype ml_signature= (Names.ModPath.t * ml_module_sig) listtype unsafe_needs={mldummy : bool;tdummy : bool;tunknown : bool;magic : bool;}type language_descr={keywords : Names.Id.Set.t;file_suffix : string;file_naming : Names.ModPath.t -> string;preamble : Names.Id.t -> Pp.t option -> Names.ModPath.t list -> unsafe_needs -> Pp.t;pp_struct : ml_structure -> Pp.t;sig_suffix : string option;sig_preamble : Names.Id.t -> Pp.t option -> Names.ModPath.t list -> unsafe_needs -> Pp.t;pp_sig : ml_signature -> Pp.t;pp_decl : ml_decl -> Pp.t;}