sig
module type G =
sig
module V :
sig
type t = State.t
val compare : t -> t -> int
val hash : t -> int
val equal : t -> t -> bool
type label = State.t
val create : label -> t
val label : t -> label
end
module E :
sig
type t = State.t * State.t
val compare : t -> t -> int
type vertex = State.t
val src : t -> vertex
val dst : t -> vertex
type label
val create : vertex -> label -> vertex -> t
val label : t -> label
end
type t
val iter_vertex :
(State_dependency_graph.G.V.t -> unit) ->
State_dependency_graph.G.t -> unit
val fold_vertex :
(State_dependency_graph.G.V.t -> 'a -> 'a) ->
State_dependency_graph.G.t -> 'a -> 'a
val iter_edges_e :
(State_dependency_graph.G.E.t -> unit) ->
State_dependency_graph.G.t -> unit
val fold_edges :
(State_dependency_graph.G.V.t ->
State_dependency_graph.G.V.t -> 'a -> 'a) ->
State_dependency_graph.G.t -> 'a -> 'a
val fold_edges_e :
(State_dependency_graph.G.E.t -> 'a -> 'a) ->
State_dependency_graph.G.t -> 'a -> 'a
val iter_succ :
(State_dependency_graph.G.V.t -> unit) ->
State_dependency_graph.G.t -> State_dependency_graph.G.V.t -> unit
val fold_succ :
(State_dependency_graph.G.V.t -> 'a -> 'a) ->
State_dependency_graph.G.t ->
State_dependency_graph.G.V.t -> 'a -> 'a
val fold_pred :
(State_dependency_graph.G.V.t -> 'a -> 'a) ->
State_dependency_graph.G.t ->
State_dependency_graph.G.V.t -> 'a -> 'a
val mem_vertex :
State_dependency_graph.G.t -> State_dependency_graph.G.V.t -> bool
val mem_edge_e :
State_dependency_graph.G.t -> State_dependency_graph.G.E.t -> bool
val in_degree :
State_dependency_graph.G.t -> State_dependency_graph.G.V.t -> int
val out_degree :
State_dependency_graph.G.t -> State_dependency_graph.G.V.t -> int
val nb_vertex : State_dependency_graph.G.t -> int
end
module type S =
sig
module G : G
val graph : State_dependency_graph.G.t
val add_dependencies : from:State.t -> State.t list -> unit
val add_codependencies : onto:State.t -> State.t list -> unit
end
module type Attributes =
sig
val graph_attributes : 'a -> Graph.Graphviz.DotAttributes.graph list
val default_vertex_attributes :
'a -> Graph.Graphviz.DotAttributes.vertex list
val vertex_name : State.t -> string
val vertex_attributes :
State.t -> Graph.Graphviz.DotAttributes.vertex list
val default_edge_attributes :
'a -> Graph.Graphviz.DotAttributes.edge list
val edge_attributes :
State.t * State.t -> Graph.Graphviz.DotAttributes.edge list
val get_subgraph :
State.t -> Graph.Graphviz.DotAttributes.subgraph option
end
module Dynamic :
sig
module G : G
val graph : G.t
val add_dependencies : from:State.t -> State.t list -> unit
val add_codependencies : onto:State.t -> State.t list -> unit
module Attributes : Attributes
module Dot :
functor (A : Attributes) -> sig val dump : string -> unit end
val dump : string -> unit
end
module Static :
sig
module G :
sig
module V :
sig
type t = State.t
val compare : t -> t -> int
val hash : t -> int
val equal : t -> t -> bool
type label = State.t
val create : label -> t
val label : t -> label
end
module E :
sig
type t = State.t * State.t
val compare : t -> t -> int
type vertex = State.t
val src : t -> vertex
val dst : t -> vertex
type label
val create : vertex -> label -> vertex -> t
val label : t -> label
end
type t
val iter_vertex : (V.t -> unit) -> t -> unit
val fold_vertex : (V.t -> 'a -> 'a) -> t -> 'a -> 'a
val iter_edges_e : (E.t -> unit) -> t -> unit
val fold_edges : (V.t -> V.t -> 'a -> 'a) -> t -> 'a -> 'a
val fold_edges_e : (E.t -> 'a -> 'a) -> t -> 'a -> 'a
val iter_succ : (V.t -> unit) -> t -> V.t -> unit
val fold_succ : (V.t -> 'a -> 'a) -> t -> V.t -> 'a -> 'a
val fold_pred : (V.t -> 'a -> 'a) -> t -> V.t -> 'a -> 'a
val mem_vertex : t -> V.t -> bool
val mem_edge_e : t -> E.t -> bool
val in_degree : t -> V.t -> int
val out_degree : t -> V.t -> int
val nb_vertex : t -> int
end
val graph : G.t
val add_dependencies : from:State.t -> State.t list -> unit
val add_codependencies : onto:State.t -> State.t list -> unit
type t
val create : unit -> t
val clear : t -> unit
val get : unit -> t
val set : t -> unit
val clear_some_projects : (Project_skeleton.t -> bool) -> t -> bool
val add_state : State.t -> State.t list -> unit
end
module Static_datatype :
sig
type t = Static.t
val ty : t Type.t
val name : string
val descr : t Descr.t
val packed_descr : Structural_descr.pack
val reprs : t list
val equal : t -> t -> bool
val compare : t -> t -> int
val hash : t -> int
val pretty_code : Format.formatter -> t -> unit
val internal_pretty_code :
Type.precedence -> Format.formatter -> t -> unit
val pretty : Format.formatter -> t -> unit
val varname : t -> string
val mem_project : (Project_skeleton.t -> bool) -> t -> bool
val copy : t -> t
end
module Remove_useless_states :
functor (G : Graph.Sig.P) ->
functor
(X : sig val kind : State_dependency_graph.G.V.t -> State.kind end) ->
sig
val get : State_dependency_graph.G.t -> State_dependency_graph.G.t
end
val add_state_like_the_others : State.t list -> State.t -> unit
module Vertices : State.Local
module Vertices_datatype :
sig
type t = Vertices.t
val ty : t Type.t
val name : string
val descr : t Descr.t
val packed_descr : Structural_descr.pack
val reprs : t list
val equal : t -> t -> bool
val compare : t -> t -> int
val hash : t -> int
val pretty_code : Format.formatter -> t -> unit
val internal_pretty_code :
Type.precedence -> Format.formatter -> t -> unit
val pretty : Format.formatter -> t -> unit
val varname : t -> string
val mem_project : (Project_skeleton.t -> bool) -> t -> bool
val copy : t -> t
end
module Make_dynamic :
functor (T : sig val name : string end) ->
sig
type t
val create : unit -> t
val clear : t -> unit
val get : unit -> t
val set : t -> unit
val clear_some_projects : (Project_skeleton.t -> bool) -> t -> bool
module Datatype :
sig
type t = t
val ty : t Type.t
val name : string
val descr : t Descr.t
val packed_descr : Structural_descr.pack
val reprs : t list
val equal : t -> t -> bool
val compare : t -> t -> int
val hash : t -> int
val pretty_code : Format.formatter -> t -> unit
val internal_pretty_code :
Type.precedence -> Format.formatter -> t -> unit
val pretty : Format.formatter -> t -> unit
val varname : t -> string
val mem_project : (Project_skeleton.t -> bool) -> t -> bool
val copy : t -> t
end
val add_state : State.t -> State.t list -> unit
val remove_state : State.t -> unit
val real_clear : unit -> unit
end
end