Probably about 30% of my functions need some sort of memory management. I wanted to use the TG(Trivial Garbage) finalizers for automatic MM but they were twice as slow as my original functions. So I decided to use 3 forms of MM in my library WITH-* macros, manual and finalizers. As for the finalizer part of my library, I wanted to call all my functions by the same name as well so I tried 2 things. First I wrapped everything in conditionals so I could call by the same name but that was a bit slow...so I decided to create a clone of my library named "GC" that had all the same functions but they were finalized. so If, while in my original package, where I normally use with-* macros because they are quickest, I needed one, I could append a "gc::" before the function I wanted to use and bam!, a finalized version of the function I wanted to use, with the same name(save for the gc::) and as fast as possible. The only caveat is If I use one finalizer I have to append a "gc::" to thee front of every function that takes that function as input. Once the branching for that function is over, I can do whatever I want with the rest of the functions in my code..Now I can tell you this is awesome and fun to use....but is there another better way