equal
deleted
inserted
replaced
87 val mk_iterate : term * term * term -> term; |
87 val mk_iterate : term * term * term -> term; |
88 val mk_fail : term; |
88 val mk_fail : term; |
89 val mk_return : term -> term; |
89 val mk_return : term -> term; |
90 val cproj : term -> 'a list -> int -> term; |
90 val cproj : term -> 'a list -> int -> term; |
91 val list_ccomb : term * term list -> term; |
91 val list_ccomb : term * term list -> term; |
|
92 (* |
92 val con_app : string -> ('a * 'b * string) list -> term; |
93 val con_app : string -> ('a * 'b * string) list -> term; |
|
94 *) |
93 val con_app2 : string -> ('a -> term) -> 'a list -> term; |
95 val con_app2 : string -> ('a -> term) -> 'a list -> term; |
94 val proj : term -> 'a list -> int -> term; |
96 val proj : term -> 'a list -> int -> term; |
95 val prj : ('a -> 'b -> 'a) -> ('a -> 'b -> 'a) -> 'a -> 'b list -> int -> 'a; |
97 val prj : ('a -> 'b -> 'a) -> ('a -> 'b -> 'a) -> 'a -> 'b list -> int -> 'a; |
96 val mk_ctuple_pat : term list -> term; |
98 val mk_ctuple_pat : term list -> term; |
97 val mk_branch : term -> term; |
99 val mk_branch : term -> term; |
121 val ===> : term * term -> term; |
123 val ===> : term * term -> term; |
122 val ==> : term * term -> term; |
124 val ==> : term * term -> term; |
123 val mk_All : string * term -> term; |
125 val mk_All : string * term -> term; |
124 |
126 |
125 (* Domain specifications *) |
127 (* Domain specifications *) |
126 type arg = (bool * int * DatatypeAux.dtyp) * string option * string; |
128 eqtype arg; |
127 type cons = string * arg list; |
129 type cons = string * arg list; |
128 type eq = (string * typ list) * cons list; |
130 type eq = (string * typ list) * cons list; |
|
131 val mk_arg : (bool * int * DatatypeAux.dtyp) * string option * string -> arg; |
129 val is_lazy : arg -> bool; |
132 val is_lazy : arg -> bool; |
130 val rec_of : arg -> int; |
133 val rec_of : arg -> int; |
131 val sel_of : arg -> string option; |
134 val sel_of : arg -> string option; |
132 val vname : arg -> string; |
135 val vname : arg -> string; |
133 val upd_vname : (string -> string) -> arg -> arg; |
136 val upd_vname : (string -> string) -> arg -> arg; |
140 val when_body : cons list -> (int * int -> term) -> term; |
143 val when_body : cons list -> (int * int -> term) -> term; |
141 val when_funs : 'a list -> string list; |
144 val when_funs : 'a list -> string list; |
142 val bound_arg : ''a list -> ''a -> term; (* ''a = arg or string *) |
145 val bound_arg : ''a list -> ''a -> term; (* ''a = arg or string *) |
143 val idx_name : 'a list -> string -> int -> string; |
146 val idx_name : 'a list -> string -> int -> string; |
144 val app_rec_arg : (int -> term) -> arg -> term; |
147 val app_rec_arg : (int -> term) -> arg -> term; |
|
148 val con_app : string -> arg list -> term; |
|
149 |
145 |
150 |
146 (* Name mangling *) |
151 (* Name mangling *) |
147 val strip_esc : string -> string; |
152 val strip_esc : string -> string; |
148 val extern_name : string -> string; |
153 val extern_name : string -> string; |
149 val dis_name : string -> string; |
154 val dis_name : string -> string; |
209 type eq = |
214 type eq = |
210 (string * (* name of abstracted type *) |
215 (string * (* name of abstracted type *) |
211 typ list) * (* arguments of abstracted type *) |
216 typ list) * (* arguments of abstracted type *) |
212 cons list; (* represented type, as a constructor list *) |
217 cons list; (* represented type, as a constructor list *) |
213 |
218 |
|
219 val mk_arg = I; |
214 fun rec_of arg = second (first arg); |
220 fun rec_of arg = second (first arg); |
215 fun is_lazy arg = first (first arg); |
221 fun is_lazy arg = first (first arg); |
216 val sel_of = second; |
222 val sel_of = second; |
217 val vname = third; |
223 val vname = third; |
218 val upd_vname = upd_third; |
224 val upd_vname = upd_third; |