Three kinds of memory leaks [blog.nelhage.com]

Unreachable allocations, unexpectedly long-lived allocations, and free but unused or unusable memory.