Graph
A poor person's directed graph and some graph traversal implementations
exception IllegalGraphOperation
The exception raised when an illegal edge is added
module type OrderedType = sig ... end
The vertices should be have some ordering
module type S = sig ... end
The Graph methods that this module supports.
module Make (Ord : OrderedType) : S with type vertex = Ord.t
Makes a graph module given an ordred type.