# Module Util

    module Util: sig .. end

Some useful operations.

    module OTProduct: functor (X : Sig.ORDERED_TYPE) -> functor (Y : Sig.ORDERED_TYPE) -> ORDERED_TYPE  with type t = X.t * Y.t

Cartesian product of two ordered types.

    module HTProduct: functor (X : Sig.HASHABLE) -> functor (Y : Sig.HASHABLE) -> HASHABLE  with type t = X.t * Y.t

Cartesian product of two hashable types.

    module CMPProduct: functor (X : Sig.COMPARABLE) -> functor (Y : Sig.COMPARABLE) -> COMPARABLE  with type t = X.t * Y.t

Cartesian product of two comparable types.

    module DataV: functor (L : sigtype t

    end) -> functor (V : Sig.COMPARABLE) -> sig .. end

Create a vertex type with some data attached to it