154 [Pretty.str "default sort:", Pretty.brk 1, prt_sort S]; |
154 [Pretty.str "default sort:", Pretty.brk 1, prt_sort S]; |
155 |
155 |
156 val tfrees = map (fn v => TFree (v, [])); |
156 val tfrees = map (fn v => TFree (v, [])); |
157 fun pretty_type syn (t, (Type.LogicalType n)) = |
157 fun pretty_type syn (t, (Type.LogicalType n)) = |
158 if syn then NONE |
158 if syn then NONE |
159 else SOME (prt_typ (Type (t, tfrees (Name.invents Name.context Name.aT n)))) |
159 else SOME (prt_typ (Type (t, tfrees (Name.invent Name.context Name.aT n)))) |
160 | pretty_type syn (t, (Type.Abbreviation (vs, U, syn'))) = |
160 | pretty_type syn (t, (Type.Abbreviation (vs, U, syn'))) = |
161 if syn <> syn' then NONE |
161 if syn <> syn' then NONE |
162 else SOME (Pretty.block |
162 else SOME (Pretty.block |
163 [prt_typ (Type (t, tfrees vs)), Pretty.str " =", Pretty.brk 1, prt_typ U]) |
163 [prt_typ (Type (t, tfrees vs)), Pretty.str " =", Pretty.brk 1, prt_typ U]) |
164 | pretty_type syn (t, Type.Nonterminal) = |
164 | pretty_type syn (t, Type.Nonterminal) = |