Added missing files
[SXSI/xpathcomp.git] / finiteCofinite.mli
diff --git a/finiteCofinite.mli b/finiteCofinite.mli
new file mode 100644 (file)
index 0000000..b489557
--- /dev/null
@@ -0,0 +1,38 @@
+exception InfiniteSet
+
+module type S =
+  sig
+    type elt
+    type t
+    val empty : t
+    val any : t
+    val is_empty : t -> bool
+    val is_any : t -> bool
+    val is_finite : t -> bool
+    val kind : t -> [ `Cofinite | `Finite ]
+    val singleton : elt -> t
+    val mem : elt -> t -> bool
+    val add : elt -> t -> t
+    val remove : elt -> t -> t
+    val cup : t -> t -> t
+    val cap : t -> t -> t
+    val diff : t -> t -> t
+    val neg : t -> t
+    val compare : t -> t -> int
+    val subset : t -> t -> bool
+    val kind_split : t list -> t * t
+    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
+    val for_all : (elt -> bool) -> t -> bool
+    val exists : (elt -> bool) -> t -> bool
+    val filter : (elt -> bool) -> t -> t
+    val partition : (elt -> bool) -> t -> t * t
+    val cardinal : t -> int
+    val elements : t -> elt list
+    val from_list : elt list -> t
+    val choose : t -> elt
+    val hash : t -> int
+    val equal : t -> t -> bool
+  end
+
+module Make :  functor (E : Sigs.Set) -> S with type elt = E.elt
+