let rec fixpoint c f cc =
compute f cc ;
if Iset.mem f c.inners then
(* inside cycle *)
( current c.ccitem )
else
(* cycle root *)
if c.stable && all_stable c.inners then
begin
define f ;
Iset.iter define c.inners ;
current c.ccitem
end
else
begin
c.stable <- true ;
Iset.iter set_stable c.inners ;
fixpoint c f cc
end