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; |