(* Copyright NICTA 2008 *)
(* Distributed under the terms of the LGPL (see LICENCE) *)
(******************************************************************************)
-module type S =
-sig
- module S : Set.S
- type t = private Finite of S.t | CoFinite of S.t
- exception InfiniteTagSet
- val empty : t
- val any : t
- val is_empty : t -> bool
- val is_any : t -> bool
- val is_finite : t -> bool
- val singleton : S.elt -> t
- val mem : S.elt -> t -> bool
- val add : S.elt -> t -> t
- val remove : S.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 : (S.elt -> 'a -> 'a) -> t -> 'a -> 'a
- val for_all : (S.elt -> bool) -> t -> bool
- val exists : (S.elt -> bool) -> t -> bool
- val filter : (S.elt -> bool) -> t -> S.t
- val partition : (S.elt -> bool) -> t -> S.t * S.t
- val cardinal : t -> int
- val elements : t -> S.elt list
- val from_list : S.elt list -> t
- val choose : t -> S.elt
-end
+include FiniteCofinite.S with type elt = Tag.t and type set = Ptset.Int.t
-module Make (Symbol : Set.OrderedType) : S with type S.elt = Symbol.t
-
-module Xml :
-sig
- include S with type S.elt = Tag.t
- val star : t
- val pcdata : t
- val attribute : t
- val node : t
-end
+val tag : Tag.t -> t
+val pcdata : t
+val attribute : t
+val star : t
+val node : t