bool.mli 973 Bytes
Newer Older
1 2 3 4
module type ARG =
sig
    type 'a t
    val dump: Format.formatter -> 'a t -> unit
5

6 7 8 9
    val equal: 'a t -> 'a t -> bool
    val hash: 'a t -> int
    val compare: 'a t -> 'a t -> int
end
10

11 12 13 14
module type S =
sig
  type 'a elem
  type 'a t
15

16
  val dump: Format.formatter -> 'a t -> unit
17

18 19 20
  val equal : 'a t -> 'a t -> bool
  val compare: 'a t -> 'a t -> int
  val hash: 'a t -> int
21

22
  val get: 'a t -> ('a elem list * 'a elem list) list
23

24 25 26 27 28 29
  val empty : 'a t
  val full  : 'a t
  val cup   : 'a t -> 'a t -> 'a t
  val cap   : 'a t -> 'a t -> 'a t
  val diff  : 'a t -> 'a t -> 'a t
  val atom  : 'a elem -> 'a t
30

31 32 33 34 35 36 37 38 39 40 41
  val iter: ('a elem-> unit) -> 'a t -> unit

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

  val print: string -> (Format.formatter -> 'a elem -> unit) -> 'a t ->
    (Format.formatter -> unit) list
end

module Make(X : ARG) : S with type 'a elem = 'a X.t