24 {classes: Name_Space.T * Sorts.algebra, |
24 {classes: Name_Space.T * Sorts.algebra, |
25 default: sort, |
25 default: sort, |
26 types: decl Name_Space.table, |
26 types: decl Name_Space.table, |
27 log_types: string list} |
27 log_types: string list} |
28 val change_base: bool -> tsig -> tsig |
28 val change_base: bool -> tsig -> tsig |
|
29 val change_ignore: tsig -> tsig |
29 val empty_tsig: tsig |
30 val empty_tsig: tsig |
30 val class_space: tsig -> Name_Space.T |
31 val class_space: tsig -> Name_Space.T |
31 val class_alias: Name_Space.naming -> binding -> string -> tsig -> tsig |
32 val class_alias: Name_Space.naming -> binding -> string -> tsig -> tsig |
32 val defaultS: tsig -> sort |
33 val defaultS: tsig -> sort |
33 val logical_types: tsig -> string list |
34 val logical_types: tsig -> string list |
178 TSig {classes = classes, default = default, types = types, log_types = log_types}; |
179 TSig {classes = classes, default = default, types = types, log_types = log_types}; |
179 |
180 |
180 fun change_base begin (TSig {classes, default, types, log_types}) = |
181 fun change_base begin (TSig {classes, default, types, log_types}) = |
181 make_tsig (classes, default, Name_Space.change_base begin types, log_types); |
182 make_tsig (classes, default, Name_Space.change_base begin types, log_types); |
182 |
183 |
|
184 fun change_ignore (TSig {classes, default, types, log_types}) = |
|
185 make_tsig (classes, default, Name_Space.change_ignore types, log_types); |
|
186 |
183 fun build_tsig (classes, default, types) = |
187 fun build_tsig (classes, default, types) = |
184 let |
188 let |
185 val log_types = |
189 val log_types = |
186 Name_Space.fold_table (fn (c, LogicalType n) => cons (c, n) | _ => I) types [] |
190 Name_Space.fold_table (fn (c, LogicalType n) => cons (c, n) | _ => I) types [] |
187 |> Library.sort (int_ord o pairself snd) |> map fst; |
191 |> Library.sort (int_ord o pairself snd) |> map fst; |