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