sig
  type t = Flatten.PSet.t Flatten.PTbl.t
  val create : int -> Flatten.PSet.t array
  val has : Flatten.PSet.t array -> int -> bool
  val check : Flatten.PSet.t array -> Flatten.PSet.elt -> int -> bool
  val add :
    Flatten.PSet.t array -> Flatten.PSet.elt -> Flatten.PSet.elt -> unit
  val remove :
    Flatten.PSet.t array -> Flatten.PSet.elt -> Flatten.PSet.elt -> unit
  val iter :
    Flatten.PSet.t array ->
    (Flatten.PSet.elt -> Flatten.PSet.elt -> unit) -> unit
  val iter_on_packages : 'a array -> (int -> '-> unit) -> unit
  val of_package : 'a array -> int -> 'a
  val exists :
    Flatten.PSet.t array -> (Flatten.PSet.elt -> bool) -> int -> bool
  val for_all :
    Flatten.PSet.t array -> (Flatten.PSet.elt -> bool) -> int -> bool
end