4 * invariant succesors/predecessors
5 * see c++ library, GTL ...
6 * (cf paper from ASTL, cf paper from jfla05 on ocamlgraph)
9 class virtual ['a
] ograph
=
11 method virtual empty
: 'o
13 method virtual add_node
: 'a
-> 'o
14 method virtual del_node
: 'a
-> 'o
16 method virtual add_arc
: ('a
* 'a
) -> 'o
17 method virtual del_arc
: ('a
* 'a
) -> 'o
19 method virtual successors
: 'a
-> 'a
Oset.oset
20 method virtual predecessors
: 'a
-> 'a
Oset.oset
22 method virtual nodes
: 'a
Oset.oset
24 method virtual ancestors
: 'a
Oset.oset
-> 'a
Oset.oset
25 method virtual children
: 'a
Oset.oset
-> 'a
Oset.oset
26 method virtual brothers
: 'a
-> 'a
Oset.oset
28 method mydebug
: ('a
* 'a list
) list
=
29 (o#nodes
)#tolist
+> map
(fun a
-> (a
, (o#successors a
)#tolist
))