sig
val list_of_self : int -> 'a -> 'a list
val cross_product : 'a list -> 'b list -> ('a * 'b) list
module MakeOrderedSetPair :
functor (Ordered : Set.OrderedType) ->
sig type t = Ordered.t * Ordered.t val compare : t -> t -> int end
end