sig
  type t
  val index : ListExtras.S.t -> ListExtras.S.t list -> int
  val mem : ListExtras.S.t -> ListExtras.S.t list -> bool
  val assoc : ListExtras.S.t -> (ListExtras.S.t * 'a) list -> 'a
  val mem_assoc : ListExtras.S.t -> (ListExtras.S.t * 'a) list -> bool
  val remove_assoc :
    ListExtras.S.t ->
    (ListExtras.S.t * 'a) list -> (ListExtras.S.t * 'a) list
end