Sorry for the second email, but another idea I forgot to mention is this: Instead of logging (or even with logging!), allow a debug feature where the 'delete' keyword would walk all of the memory and check for references to the object before actually deleting it, and if there's a problem, just have it do an assert(0). This will make debugging a breeze, and it would pretty much clear up any problems with safety and all.
Does that sound like a good (and reasonably simple) option? Thank you!
