sig
type key
type edge_data
type t
val create : unit -> Stog_graph.S.t
val marshal : Stog_graph.S.t -> string
val unmarshal : string -> Stog_graph.S.t
val succ :
Stog_graph.S.t ->
Stog_graph.S.key -> (Stog_graph.S.key * Stog_graph.S.edge_data) list
val pred :
Stog_graph.S.t ->
Stog_graph.S.key -> (Stog_graph.S.key * Stog_graph.S.edge_data) list
val add :
Stog_graph.S.t ->
Stog_graph.S.key * Stog_graph.S.key * Stog_graph.S.edge_data ->
Stog_graph.S.t
val rem :
Stog_graph.S.t ->
Stog_graph.S.key * Stog_graph.S.key ->
(Stog_graph.S.edge_data -> bool) -> Stog_graph.S.t
val rem_all :
Stog_graph.S.t -> Stog_graph.S.key * Stog_graph.S.key -> Stog_graph.S.t
val isolate : Stog_graph.S.t -> Stog_graph.S.key -> Stog_graph.S.t
val remove_node : Stog_graph.S.t -> Stog_graph.S.key -> Stog_graph.S.t
val pred_roots :
?ignore_deps:Stog_graph.S.edge_data list ->
Stog_graph.S.t -> Stog_graph.S.key list
val succ_roots : Stog_graph.S.t -> Stog_graph.S.key list
val recursive_succs :
Stog_graph.S.t ->
?pred:(Stog_graph.S.edge_data -> bool) ->
Stog_graph.S.key -> Stog_graph.S.key list
val recursive_preds :
Stog_graph.S.t ->
?pred:(Stog_graph.S.edge_data -> bool) ->
Stog_graph.S.key -> Stog_graph.S.key list
val reverse : Stog_graph.S.t -> Stog_graph.S.t
val fold_succ :
Stog_graph.S.t ->
(Stog_graph.S.key ->
(Stog_graph.S.key * Stog_graph.S.edge_data) list -> 'a -> 'a) ->
'a -> 'a
val fold_pred :
Stog_graph.S.t ->
(Stog_graph.S.key ->
(Stog_graph.S.key * Stog_graph.S.edge_data) list -> 'a -> 'a) ->
'a -> 'a
val iter_succ :
Stog_graph.S.t ->
(Stog_graph.S.key ->
(Stog_graph.S.key * Stog_graph.S.edge_data) list -> unit) ->
unit
val iter_pred :
Stog_graph.S.t ->
(Stog_graph.S.key ->
(Stog_graph.S.key * Stog_graph.S.edge_data) list -> unit) ->
unit
val dot_of_graph :
?f_edge:(Stog_graph.S.edge_data -> string * (string * string) list) ->
f_node:(Stog_graph.S.key -> string * string * (string * string) list) ->
Stog_graph.S.t -> string
val nodes_by_pred_order : Stog_graph.S.t -> Stog_graph.S.key list
val shortest_path :
Stog_graph.S.t ->
(Stog_graph.S.t ->
Stog_graph.S.key * Stog_graph.S.key ->
(float * Stog_graph.S.edge_data) option) ->
Stog_graph.S.key * Stog_graph.S.key ->
(Stog_graph.S.key * Stog_graph.S.edge_data * Stog_graph.S.key) list
end