A recent addition to LBM is a kind of custom type that you can create from
an extension. When creating the type you also create a custom destructor that the GC will invoke on the value when it is removed.
The demo wraps up a small SDL interface for LBM and implements things like windows and renderers as custom types.
https://github.com/svenssonjoel/lispBM