src/HOL/Tools/datatype_codegen.ML
changeset 19886 6bec6daac280
parent 19818 5c5c1208a3fa
child 20071 8f3e1ddb50e6
equal deleted inserted replaced
19885:00f70ad51778 19886:6bec6daac280
     8 signature DATATYPE_CODEGEN =
     8 signature DATATYPE_CODEGEN =
     9 sig
     9 sig
    10   val get_datatype_spec_thms: theory -> string
    10   val get_datatype_spec_thms: theory -> string
    11     -> (((string * sort) list * (string * typ list) list) * tactic) option
    11     -> (((string * sort) list * (string * typ list) list) * tactic) option
    12   val get_all_datatype_cons: theory -> (string * string) list
    12   val get_all_datatype_cons: theory -> (string * string) list
       
    13   val add_datatype_case_const: string -> theory -> theory
       
    14   val add_datatype_case_defs: string -> theory -> theory
    13   val setup: theory -> theory
    15   val setup: theory -> theory
    14 end;
    16 end;
    15 
    17 
    16 structure DatatypeCodegen : DATATYPE_CODEGEN =
    18 structure DatatypeCodegen : DATATYPE_CODEGEN =
    17 struct
    19 struct
   351     get_datatype_spec_thms #>
   353     get_datatype_spec_thms #>
   352   CodegenPackage.set_get_datatype
   354   CodegenPackage.set_get_datatype
   353     DatatypePackage.get_datatype_spec #>
   355     DatatypePackage.get_datatype_spec #>
   354   CodegenPackage.set_get_all_datatype_cons
   356   CodegenPackage.set_get_all_datatype_cons
   355     get_all_datatype_cons #>
   357     get_all_datatype_cons #>
   356   DatatypeHooks.add add_datatype_case_const
   358   DatatypeHooks.add add_datatype_case_const #>
       
   359   DatatypeHooks.add add_datatype_case_defs
   357 
   360 
   358 end;
   361 end;