+
+val lvm_type_register :
+ string -> (lvm_plugin_id -> device -> pv) -> (device list -> lv list) -> unit
+(** [lvm_type_register lvm_name probe_fn list_lvs_fn]
+ registers a new LVM type. [probe_fn] is a function which
+ should probe a device to find out if it contains a PV.
+ [list_lvs_fn] is a function which should take a list of
+ devices (PVs) and construct a list of LV devices.
+*)
+
+val probe_for_pv : device -> pv option
+(** Do a PV probe on a device. Returns [Some pv] or [None]. *)
+
+val list_lvs : lvm_plugin_id -> device list -> lv list
+(** Construct LV devices from a list of PVs. *)
+
+(** {2 Utility functions} *)
+
+val group_by : ?cmp:('a -> 'a -> int) -> ('a * 'b) list -> ('a * 'b list) list
+(** Group a sorted list of pairs by the first element of the pair. *)
+
+val range : int -> int -> int list
+(** [range a b] returns the list of integers [a <= i < b].
+ If [a >= b] then the empty list is returned.
+*)