| 1 |
type 'a obj = { id : int; mutable v : 'a } |
module type ARG = |
| 2 |
|
sig |
| 3 |
|
type 'a t |
| 4 |
|
val dump: Format.formatter -> 'a t -> unit |
| 5 |
|
|
| 6 |
|
val equal: 'a t -> 'a t -> bool |
| 7 |
|
val hash: 'a t -> int |
| 8 |
|
val compare: 'a t -> 'a t -> int |
| 9 |
|
end |
| 10 |
|
|
| 11 |
type 'a t (* = True | False | Split of 'a obj * 'a t * 'a t * 'a t *) |
module type S = |
| 12 |
|
sig |
| 13 |
|
type 'a elem |
| 14 |
|
type 'a t |
| 15 |
|
|
| 16 |
|
val dump: Format.formatter -> 'a t -> unit |
| 17 |
|
|
| 18 |
val equal : 'a t -> 'a t -> bool |
val equal : 'a t -> 'a t -> bool |
| 19 |
val compare: 'a t -> 'a t -> int |
val compare: 'a t -> 'a t -> int |
| 20 |
val hash: 'a t -> int |
val hash: 'a t -> int |
| 21 |
|
|
| 22 |
val iter: ('a -> unit) -> ('a t -> unit) |
val get: 'a t -> ('a elem list * 'a elem list) list |
| 23 |
|
|
| 24 |
val print : |
val empty : 'a t |
| 25 |
(Format.formatter -> 'a -> unit) -> Format.formatter -> 'a t -> unit |
val full : 'a t |
| 26 |
val dump : Format.formatter -> 'a t -> unit |
val cup : 'a t -> 'a t -> 'a t |
| 27 |
|
val cap : 'a t -> 'a t -> 'a t |
| 28 |
|
val diff : 'a t -> 'a t -> 'a t |
| 29 |
|
val atom : 'a elem -> 'a t |
| 30 |
|
|
| 31 |
val dnf : 'a t -> ('a list * 'a list) list |
val iter: ('a elem-> unit) -> 'a t -> unit |
| 32 |
|
|
| 33 |
val compute: empty:'b -> any:'b -> cup:('b -> 'b -> 'b) |
val compute: empty:'b -> full:'b -> cup:('b -> 'b -> 'b) |
| 34 |
-> cap:('b -> 'b -> 'b) -> diff:('b -> 'b -> 'b) -> |
-> cap:('b -> 'b -> 'b) -> diff:('b -> 'b -> 'b) -> |
| 35 |
atom:('a -> 'b) -> 'a t -> 'b |
atom:('a elem -> 'b) -> 'a t -> 'b |
| 36 |
|
|
| 37 |
val empty : 'a t |
val print: string -> (Format.formatter -> 'a elem -> unit) -> 'a t -> |
| 38 |
val any : 'a t |
(Format.formatter -> unit) list |
| 39 |
val ( !! ) : 'a obj -> 'a t |
end |
| 40 |
val ( ++ ) : 'a t -> 'a t -> 'a t |
|
| 41 |
val ( ** ) : 'a t -> 'a t -> 'a t |
module Make(X : ARG) : S with type 'a elem = 'a X.t |
|
val ( // ) : 'a t -> 'a t -> 'a t |
|