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