Heap organization:

top/       - "source" heaps that have no superheap.
combining/ - heaps whose purpose is to combine two existing superheaps.
debug/     - heaps whose only purpose is debugging or statistics-gathering.
threads/   - heaps designed to support multiple threads.
special/   - esoteric heaps to support custom allocation schemes like obstacks.

buildingblock/ - layers that cannot be used standalone but rather are useful for building other heaps.
objectrep/ - heaps that change the representation of individual objects (e.g., by adding headers).
             (admittedly this is a terrible organizational principle)
utility/   - currently a grab-bag
