(* like List.assoc but returns all bindings *)
val list_assoc_all: 'a -> ('a * 'b) list -> 'b list
-val rm_assoc : 'a -> ('a * 'b) list -> 'b * ('a * 'b) list
+val rm_assoc_option : 'a -> ('a * 'b) list -> 'b option * ('a * 'b) list
-val clusters : ('a -> 'a list) -> 'a list -> 'a list list
+val rm_assoc_assert : 'a -> ('a * 'b) list -> 'b * ('a * 'b) list
+
+val clusters : (int -> int list) -> int list -> int list list
(** {2 Debugging & Profiling} *)
type profiler = { profile : 'a 'b. ('a -> 'b) -> 'a -> 'b }