src/HOLCF/Tools/domain/domain_extender.ML
changeset 31228 bcacfd816d28
parent 31163 19c2f68ae23d
child 31229 8a890890d143
equal deleted inserted replaced
31227:0aa6afd229d3 31228:bcacfd816d28
   120           in if Symbol.is_letter c then c else "t" end
   120           in if Symbol.is_letter c then c else "t" end
   121       | typid (TFree (id,_)   ) = hd (strip (tl (Symbol.explode id)))
   121       | typid (TFree (id,_)   ) = hd (strip (tl (Symbol.explode id)))
   122       | typid (TVar ((id,_),_)) = hd (tl (Symbol.explode id));
   122       | typid (TVar ((id,_),_)) = hd (tl (Symbol.explode id));
   123     fun one_con (con,args,mx) =
   123     fun one_con (con,args,mx) =
   124 	((Syntax.const_name mx (Binding.name_of con)),
   124 	((Syntax.const_name mx (Binding.name_of con)),
   125 	 ListPair.map (fn ((lazy,sel,tp),vn) => ((lazy,
   125 	 ListPair.map (fn ((lazy,sel,tp),vn) => mk_arg ((lazy,
   126 					find_index_eq tp dts,
   126 					find_index_eq tp dts,
   127 					DatatypeAux.dtyp_of_typ new_dts tp),
   127 					DatatypeAux.dtyp_of_typ new_dts tp),
   128 					Option.map Binding.name_of sel,vn))
   128 					Option.map Binding.name_of sel,vn))
   129 	     (args,(mk_var_names(map (typid o third) args)))
   129 	     (args,(mk_var_names(map (typid o third) args)))
   130 	 ) : cons;
   130 	 ) : cons;