Module Df_struct

module Df_struct: sig .. end

exception Dferror of string
type dfsink_kind = 
| DFSerialize
| DFControl
type dfpass_kind = 
| DFOrdered of int
| DFUnordered
| DFMerge
| DFImmediate
type dfnode_kind = 
| DFSink of dfsink_kind
| DFPass of dfpass_kind
| DFFork
type dfnode_id 
type ('a, 'b) dfnode 
type ('a, 'b) dfgraph = ('a, 'b) dfnode list * ('a, 'b) dfnode 
val mkdfnode_dfsink : dfsink_kind -> 'a -> ('a, 'b) dfnode
val mkdfnode_dfpass : dfpass_kind -> 'a -> ('a, 'b) dfnode
val mkdfnode_dffork : 'a -> ('a, 'b) dfnode
val mkdfgraph_empty : unit -> ('a, 'b) dfgraph
val mkdfgraph_singleton : ('a, 'b) dfnode -> ('a, 'b) dfgraph
val get_dfnode_value : ('a, 'b) dfnode -> 'a
val get_dfnode_kind : ('a, 'b) dfnode -> dfnode_kind
val get_dfnode_id : ('a, 'b) dfnode -> dfnode_id
val is_dfsink : dfsink_kind -> ('a, 'b) dfnode -> bool
val is_dfpass : dfpass_kind -> ('a, 'b) dfnode -> bool
val is_dffork : ('a, 'b) dfnode -> bool
val affiliate_unary : ('a, 'b) dfnode -> unit
val affiliate_binary : ('a, 'b) dfnode -> ('a, 'b) dfnode -> unit
val affiliate_many : ('a, 'b) dfnode list -> unit
val get_affiliates : ('a, 'b) dfnode -> ('a, 'b) dfnode list
val terminate_unary : ('a, 'b) dfnode ->
('a, 'b) dfgraph -> ('a, 'b) dfgraph
val terminate_binary : ('a, 'b) dfnode ->
('a, 'b) dfgraph ->
('a, 'b) dfgraph -> ('a, 'b) dfgraph
val terminate_many : ('a, 'b) dfnode ->
('a, 'b) dfgraph list -> ('a, 'b) dfgraph
val merge_dfgraphs : ('a, 'b) dfgraph ->
('a, 'b) dfgraph -> ('a, 'b) dfgraph
val iter_dfs : (('a, 'b) dfnode -> 'b -> 'b) ->
'b -> ('a, 'b) dfgraph -> unit
val fold_left_dfs : ('a list -> ('b, 'a) dfnode -> 'c -> 'a) ->
(('b, 'a) dfnode -> 'c -> 'c) ->
'a -> 'c -> ('b, 'a) dfnode -> 'a
val find_all : (('a, 'b) dfnode -> bool) ->
('a, 'b) dfgraph -> ('a, 'b) dfnode list
val string_of_dfnode_id : dfnode_id -> string
val print_dot_dfgraph : Format.formatter -> ('a, 'b) dfgraph -> unit
val print_dot_clustered_dfgraph : Format.formatter -> ('a, 'b) dfgraph -> unit
val print_dot_dfgraph_custom : Format.formatter ->
(Format.formatter ->
dfnode_kind -> dfnode_id -> 'a -> unit) ->
('a, 'b) dfgraph -> unit