src/HOL/Tools/Datatype/rep_datatype.ML
changeset 56254 a2dd9200854d
parent 56245 84fc7dfa3cd4
child 56895 f058120aaad4
equal deleted inserted replaced
56253:83b3c110f22d 56254:a2dd9200854d
   276 
   276 
   277     val descr' = flat descr;
   277     val descr' = flat descr;
   278     val recTs = Datatype_Aux.get_rec_types descr';
   278     val recTs = Datatype_Aux.get_rec_types descr';
   279     val used = fold Term.add_tfree_namesT recTs [];
   279     val used = fold Term.add_tfree_namesT recTs [];
   280     val newTs = take (length (hd descr)) recTs;
   280     val newTs = take (length (hd descr)) recTs;
   281     val T' = TFree (singleton (Name.variant_list used) "'t", HOLogic.typeS);
   281     val T' = TFree (singleton (Name.variant_list used) "'t", @{sort type});
   282 
   282 
   283     fun mk_dummyT dt = binder_types (Datatype_Aux.typ_of_dtyp descr' dt) ---> T';
   283     fun mk_dummyT dt = binder_types (Datatype_Aux.typ_of_dtyp descr' dt) ---> T';
   284 
   284 
   285     val case_dummy_fns =
   285     val case_dummy_fns =
   286       map (fn (_, (_, _, constrs)) => map (fn (_, cargs) =>
   286       map (fn (_, (_, _, constrs)) => map (fn (_, cargs) =>