functor (E : Elt->
  sig
    type t
    val size : Indexer.Make.t -> int
    val mem : E.t -> Indexer.Make.t -> bool
    val get : int -> Indexer.Make.t -> E.t
    val index : E.t -> Indexer.Make.t -> int
    val is_empty : Indexer.Make.t -> bool
    val empty : Indexer.Make.t
    val add : E.t -> Indexer.Make.t -> Indexer.Make.t
    val remove : E.t -> Indexer.Make.t -> Indexer.Make.t
    val filter : (E.t -> bool) -> Indexer.Make.t -> Indexer.Make.t
    val update :
      E.t option ->
      E.t option -> Indexer.Make.t -> int * int * Indexer.Make.t
    val iter : (E.t -> unit) -> Indexer.Make.t -> unit
    val iteri : (int -> E.t -> unit) -> Indexer.Make.t -> unit
  end