WeakList implementation