equal
deleted
inserted
replaced
87 list); (* argument list *) |
87 list); (* argument list *) |
88 type eq = (string * (* name of abstracted type *) |
88 type eq = (string * (* name of abstracted type *) |
89 typ list) * (* arguments of abstracted type *) |
89 typ list) * (* arguments of abstracted type *) |
90 cons list; (* represented type, as a constructor list *) |
90 cons list; (* represented type, as a constructor list *) |
91 |
91 |
92 val rec_of = snd o first; |
92 fun rec_of arg = snd (first arg); |
93 val is_lazy = fst o first; |
93 fun is_lazy arg = fst (first arg); |
94 val sel_of = second; |
94 val sel_of = second; |
95 val vname = third; |
95 val vname = third; |
96 val upd_vname = upd_third; |
96 val upd_vname = upd_third; |
97 fun is_rec arg = rec_of arg >=0; |
97 fun is_rec arg = rec_of arg >=0; |
98 fun is_nonlazy_rec arg = is_rec arg andalso not (is_lazy arg); |
98 fun is_nonlazy_rec arg = is_rec arg andalso not (is_lazy arg); |