it always seems to me that distinguishing between reference counting and "garbage collection" gets the two things exactly the wrong way round. reference counting is garbage collection! when something is known to be useless (unreachable), it's immediately discarded. in contrast, what we call garbage collection is, in fact, recycling: assume the whole heap is a trash mountain, then sift through all of it to find and rescue the things that still have potential before sending the rest into the incinerator