| 1 |
abate |
224 |
module type ARG =
|
| 2 |
|
|
sig
|
| 3 |
|
|
type 'a t
|
| 4 |
|
|
val equal: 'a t -> 'a t -> bool
|
| 5 |
|
|
val hash: 'a t -> int
|
| 6 |
|
|
val compare: 'a t -> 'a t -> int
|
| 7 |
|
|
end
|
| 8 |
|
|
|
| 9 |
abate |
225 |
module type ARG0 =
|
| 10 |
|
|
sig
|
| 11 |
|
|
type t
|
| 12 |
|
|
val equal: t -> t -> bool
|
| 13 |
|
|
val hash: t -> int
|
| 14 |
|
|
val compare: t -> t -> int
|
| 15 |
|
|
end
|
| 16 |
|
|
|
| 17 |
abate |
224 |
module type S =
|
| 18 |
|
|
sig
|
| 19 |
|
|
type 'a elem
|
| 20 |
|
|
type 'a t
|
| 21 |
|
|
val equal: 'a t -> 'a t -> bool
|
| 22 |
|
|
val hash: 'a t -> int
|
| 23 |
|
|
val compare: 'a t -> 'a t -> int
|
| 24 |
|
|
|
| 25 |
abate |
225 |
external get: 'a t -> 'a elem list = "%identity"
|
| 26 |
|
|
|
| 27 |
|
|
val singleton: 'a elem -> 'a t
|
| 28 |
|
|
val iter: ('a elem -> unit) -> 'a t -> unit
|
| 29 |
|
|
val filter: ('a elem -> bool) -> 'a t -> 'a t
|
| 30 |
|
|
val exists: ('a elem -> bool) -> 'a t -> bool
|
| 31 |
|
|
val fold: ('b -> 'a elem -> 'b) -> 'b -> 'a t -> 'b
|
| 32 |
|
|
val pick: 'a t -> 'a elem option
|
| 33 |
|
|
val length: 'a t -> int
|
| 34 |
|
|
|
| 35 |
|
|
val empty: 'a t
|
| 36 |
|
|
val is_empty: 'a t -> bool
|
| 37 |
abate |
224 |
val from_list : 'a elem list -> 'a t
|
| 38 |
|
|
val add: 'a elem -> 'a t -> 'a t
|
| 39 |
abate |
225 |
val remove: 'a elem -> 'a t -> 'a t
|
| 40 |
abate |
224 |
val disjoint: 'a t -> 'a t -> bool
|
| 41 |
|
|
val cup: 'a t -> 'a t -> 'a t
|
| 42 |
|
|
val split: 'a t -> 'a t -> 'a t * 'a t * 'a t
|
| 43 |
abate |
1 |
(* split l1 l2 = (l1 \ l2, l1 & l2, l2 \ l1) *)
|
| 44 |
abate |
224 |
val cap: 'a t -> 'a t -> 'a t
|
| 45 |
|
|
val diff: 'a t -> 'a t -> 'a t
|
| 46 |
|
|
val subset: 'a t -> 'a t -> bool
|
| 47 |
|
|
val map: ('a elem-> 'b elem) -> 'a t -> 'b t
|
| 48 |
|
|
val mem: 'a t -> 'a elem -> bool
|
| 49 |
abate |
1 |
|
| 50 |
abate |
224 |
val check: 'a elem list -> unit
|
| 51 |
abate |
225 |
|
| 52 |
|
|
module Map: sig
|
| 53 |
|
|
type ('a,'b) map
|
| 54 |
|
|
external get: ('a,'b) map -> ('a elem * 'b) list = "%identity"
|
| 55 |
|
|
val empty: ('a,'b) map
|
| 56 |
abate |
233 |
val iter: ('b -> unit) -> ('a,'b) map -> unit
|
| 57 |
abate |
225 |
val is_empty: ('a,'b) map -> bool
|
| 58 |
|
|
val singleton: 'a elem -> 'b -> ('a,'b) map
|
| 59 |
abate |
233 |
val assoc_remove: 'a elem -> ('a,'b) map -> 'b * ('a,'b) map
|
| 60 |
abate |
240 |
val remove: 'a elem -> ('a,'b) map -> ('a,'b) map
|
| 61 |
abate |
225 |
val merge: ('b -> 'b -> 'b ) -> ('a,'b) map -> ('a,'b) map -> ('a,'b) map
|
| 62 |
|
|
val merge_elem: 'b -> ('a,'b) map -> ('a,'b) map -> ('a,'b) map
|
| 63 |
|
|
val union_disj: ('a,'b) map -> ('a,'b) map -> ('a,'b) map
|
| 64 |
|
|
val diff: ('a,'b) map -> 'a t -> ('a,'b) map
|
| 65 |
|
|
val from_list: ('b -> 'b -> 'b ) -> ('a elem * 'b) list -> ('a,'b) map
|
| 66 |
abate |
243 |
val from_list_disj: ('a elem * 'b) list -> ('a,'b) map
|
| 67 |
abate |
225 |
|
| 68 |
|
|
val map_from_slist: ('a elem -> 'b) -> 'a t -> ('a,'b) map
|
| 69 |
|
|
val collide: ('b -> 'c -> unit) -> ('a,'b) map -> ('a,'c) map -> unit
|
| 70 |
|
|
val map: ('b -> 'c) -> ('a,'b) map -> ('a,'c) map
|
| 71 |
abate |
233 |
val mapi: ('a elem -> 'b -> 'c) -> ('a,'b) map -> ('a,'c) map
|
| 72 |
abate |
225 |
val constant: 'b -> 'a t -> ('a,'b) map
|
| 73 |
|
|
val num: int -> 'a t -> ('a,int) map
|
| 74 |
|
|
val map_to_list: ('b -> 'c) -> ('a,'b) map -> 'c list
|
| 75 |
|
|
val mapi_to_list: ('a elem -> 'b -> 'c) -> ('a,'b) map -> 'c list
|
| 76 |
|
|
val assoc: 'a elem -> ('a,'b) map -> 'b
|
| 77 |
abate |
243 |
val assoc_present: 'a elem -> ('a,'b) map -> 'b
|
| 78 |
abate |
237 |
val compare: ('b -> 'b -> int) -> ('a,'b) map -> ('a,'b) map -> int
|
| 79 |
abate |
271 |
val hash: ('b -> int) -> ('a,'b) map -> int
|
| 80 |
abate |
276 |
val equal: ('b -> 'b -> bool) -> ('a,'b) map -> ('a,'b) map -> bool
|
| 81 |
abate |
225 |
end
|
| 82 |
abate |
224 |
end
|
| 83 |
abate |
1 |
|
| 84 |
abate |
225 |
module Make(X : ARG) : S with type 'a elem = 'a X.t
|
| 85 |
|
|
module Make_transp(X : ARG) : S with type 'a elem = 'a X.t and type 'a t = 'a X.t list
|
| 86 |
|
|
module Lift(X : ARG0) : ARG with type 'a t = X.t
|
| 87 |
abate |
224 |
|
| 88 |
abate |
225 |
module String : ARG0 with type t = string
|
| 89 |
|
|
|