let update f item descr =
match lookup f with
| Undefined | Defined _ ->
declare { d_name=f ; d_item=item ; d_descr=descr }
| Cyclic c ->
if c.stable then
begin
match c.ccitem with
| Cnone -> ()
| Cdefault item0 | Cupdated(item0,_) ->
c.stable <- compatible item0 item
end ;
c.ccitem <- Cupdated(item,descr)