I decided to post here after a little incident where I got an effective
memory leak that was immune from garbage collection.
I created a simple binary tree, no balancing or deleting. Only two
functions from the root--update (add if missing), and read. The
problem was the update had a bug and after updating, it would always
then add as though the item were missing. This caused the tree to grow
unbounded, but from all outward appearances, the program ran normal.
Just pointing out that it is very easy to get an effective memory leak
even with garbage collection.