Graph.BlocksCommon implementation to persistent and imperative graphs.
val cpt_vertex : int refmodule type HM = sig ... endCommon signature to an imperative/persistent association table
module type TBL_BUILDER = functor (X : Sig.COMPARABLE) -> HM with type key = X.tmodule Make_Hashtbl (X : Sig.COMPARABLE) : sig ... endHM implementation using hashtbl.
module Make_Map (X : Sig.COMPARABLE) : sig ... endHM implementation using map
Common implementation to all (directed) graph implementations.
All the predecessor operations from the iterators on the edges
Common implementation to all the unlabeled (directed) graphs.
module Labeled (V : Sig.COMPARABLE) (E : Sig.ORDERED_TYPE) (HM : HM with type key = V.t) : sig ... endCommon implementation to all the labeled (directed) graphs.
module ConcreteVertex (F : TBL_BUILDER) (V : Sig.COMPARABLE) : sig ... endThe vertex module and the vertex table for the concrete graphs.
module Make_Abstract (G : sig ... end) : sig ... endSupport for explicitly maintaining edge set of predecessors. Crucial for algorithms that do a lot of backwards traversal.
module BidirectionalMinimal (S : Set.S) (HM : HM) : sig ... endmodule BidirectionalUnlabeled (V : Sig.COMPARABLE) (HM : HM with type key = V.t) : sig ... endmodule BidirectionalLabeled (V : Sig.COMPARABLE) (E : Sig.ORDERED_TYPE) (HM : HM with type key = V.t) : sig ... endmodule Make (F : TBL_BUILDER) : sig ... endBuild persistent (resp. imperative) graphs from a persistent (resp. imperative) association table