Up

module Ir_graph

: sig

Graphs.

#
module type S = sig

Main signature.

include Graph.Sig.I
include Graph.Oper.S with type g := t
#
module Topological : sig

Topoogical traversal

#
val fold : (vertex -> 'a -> 'a) -> t -> 'a -> 'a
end
#
val vertex : t -> vertex list

Get all the vertices.

#
val edges : t -> (vertex * vertex) list

Get all the relations.

#
val closure : ?depth:int -> pred:(vertex -> vertex list Lwt.t) -> min:vertex list -> max:vertex list -> unit -> t Lwt.t

closure min max pred creates the clansitive closure of max using the precedence relation pred. The closure will not contain any keys before the the one specified in min.

#
val output : Format.formatter -> (vertex * Graph.Graphviz.DotAttributes.vertex list) list -> (vertex * Graph.Graphviz.DotAttributes.edge list * vertex) list -> string -> unit

output ppf vertex edges name create aand dumps the graph contents on ppf. The graph is defined by its vertex and edges. name is the name of the output graph.

#
val min : t -> vertex list

Compute the minimum vertex.

#
val max : t -> vertex list

Compute the maximun vertex.

#
type dump = vertex list * (vertex * vertex) list

Expose the graph internals.

#
val export : t -> dump

Expose the graph as a pair of vertices and edges.

#
val import : dump -> t

Import a graph.

#
module Dump : Tc.S0 with type t = dump

The base functions over graph internals.

end
#
module Make : functor (Contents : Tc.S0) -> functor (Node : Tc.S0) -> functor (Commit : Tc.S0) -> functor (Tag : Tc.S0) -> S with type V.t = [
| `Contents of Contents.t
| `Node of Node.t
| `Commit of Commit.t
| `Tag of Tag.t
]

Build a graph.

end