equal
deleted
inserted
replaced
34 type tags = nt Symtab.table; |
34 type tags = nt Symtab.table; |
35 val tags_empty: tags = Symtab.empty; |
35 val tags_empty: tags = Symtab.empty; |
36 fun tags_content (tags: tags) = sort_by #1 (Symtab.dest tags); |
36 fun tags_content (tags: tags) = sort_by #1 (Symtab.dest tags); |
37 fun tags_lookup (tags: tags) = Symtab.lookup tags; |
37 fun tags_lookup (tags: tags) = Symtab.lookup tags; |
38 fun tags_insert tag (tags: tags) = Symtab.update_new tag tags; |
38 fun tags_insert tag (tags: tags) = Symtab.update_new tag tags; |
39 fun tags_name (tags: tags) = the o Inttab.lookup (Inttab.make (map swap (Symtab.dest tags))); |
39 fun tags_name (tags: tags) = |
|
40 the o Inttab.lookup (Inttab.build (Symtab.fold (Inttab.update_new o swap) tags)); |
40 |
41 |
41 type nts = Intset.T; |
42 type nts = Intset.T; |
42 val nts_empty: nts = Intset.empty; |
43 val nts_empty: nts = Intset.empty; |
43 val nts_merge: nts * nts -> nts = Intset.merge; |
44 val nts_merge: nts * nts -> nts = Intset.merge; |
44 fun nts_insert nt : nts -> nts = Intset.insert nt; |
45 fun nts_insert nt : nts -> nts = Intset.insert nt; |