bool.mli 725 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
type 'a obj = { id : int; mutable v : 'a }

type 'a t (* = True | False | Split of 'a obj * 'a t * 'a t * 'a t *)

val equal : 'a t -> 'a t -> bool
val compare: 'a t -> 'a t -> int
val hash: 'a t -> int

val iter: ('a -> unit) -> ('a t -> unit)

val print : 
  (Format.formatter -> 'a -> unit) -> Format.formatter -> 'a t -> unit
val dump : Format.formatter -> 'a t -> unit

val dnf : 'a t -> ('a list * 'a list) list

val compute: empty:'b -> any:'b -> cup:('b -> 'b -> 'b) 
  -> cap:('b -> 'b -> 'b) -> diff:('b -> 'b -> 'b) ->
  atom:('a -> 'b) -> 'a t -> 'b

val empty : 'a t
val any : 'a t
val ( !! ) : 'a obj -> 'a t
val ( ++ ) : 'a t -> 'a t -> 'a t
val ( ** ) : 'a t -> 'a t -> 'a t
val ( // ) : 'a t -> 'a t -> 'a t