+(** {3 Utility functions} *)
+
+val map_ignore_errors : ('a -> 'b) -> 'a list -> 'b list
+(** [map_ignore_errors f xs] calls function [f] for each element of [xs].
+
+ This is just like [List.map] except that if [f x] throws a
+ {!Virterror.t} exception, the error is ignored and [f x]
+ is not returned in the final list.
+
+ This function is primarily useful when dealing with domains which
+ might 'disappear' asynchronously from the currently running
+ program.
+*)
+
+val get_domains : ([>`R] as 'a) Connect.t -> ?want_info:bool -> Domain.list_flag list -> 'a Domain.t list * Domain.info list
+ (** Get the active and/or inactive domains using the most
+ efficient method available.
+
+ The two lists returned will have the same length, unless
+ [~want_info] is [false] in which case the info list will be
+ zero-length. The default for [~want_info] is [true]. In most
+ cases there is no extra penalty for getting the info fields, or
+ the penalty is insignificant.
+
+ See also:
+ {!Domain.list_all_domains},
+ {!Connect.list_domains},
+ {!Connect.list_defined_domains}.
+ *)