Hello, Consider two mutually recursive values: let rec x = (1,y) and y = (2,x) for instance. They will become unreachable by the GC at the same cycle. However, if they are both added in a weak array, it seems that they may not be removed at the same time from the array. I have some code that seems to show that most of the time they are removed at the same times, but very rarely this fails. The description in weak.mli does not imply this, because it just says "may be removed" and not "must be removed". What do you think about this ? Regards, Christophe