Stog library reference documentation : Stog_graph.S
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
  val fold_pred :
    Stog_graph.S.t ->
    (Stog_graph.S.key ->
     (Stog_graph.S.key * Stog_graph.S.edge_data) list -> '-> '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