sig   module type Elt =     sig type t val compare : Indexer.Elt.t -> Indexer.Elt.t -> int end   module Make :     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 end