4 (* essentially a convenient way to access a hash and its reverse hash *)
6 class ['key
, 'node
, 'edge
] ograph_mutable
:
8 method add_node
: 'key
-> 'node
-> unit
9 method del_node
: 'key
-> unit
10 method replace_node
: 'key
-> 'node
-> unit
13 method add_arc
: ('key
* 'key
) -> 'edge
-> unit
14 method del_arc
: ('key
* 'key
) -> 'edge
-> unit
16 method nodes
: ('key
, 'node
) Oassoc.oassoc
18 method successors
: 'key
-> ('key
* 'edge
) Oset.oset
19 method predecessors
: 'key
-> ('key
* 'edge
) Oset.oset
20 method allsuccessors
: ('key
, ('key
* 'edge
) Oset.oset
) Oassoc.oassoc
23 method del_leaf_node_and_its_edges
: 'key
-> unit
24 method ancestors
: 'key
-> 'key
Oset.oset
25 method leaf_nodes
: unit -> 'key
Oset.oset
29 val print_ograph_generic
:
30 str_of_key
:('key
-> string) ->
31 str_of_node
:('key
-> 'node
-> string) ->
33 ('key
, 'node
,'edge
) ograph_mutable
->