The Generic Window Manager is an X window manager originally developed by Colas Nahaboo as part of the Koala Project in 1988/1989. In early 2011, BtTempleton began updating it to use Guile Scheme as its extension language instead of WOOL, its idiosyncratic Lisp dialect. It currently works well on modern GNU/Linux systems and uses BDW-GC instead of its own garbage collector, but still uses WOOL for configuration.
TODO
Why are Num objects sometimes cast to pointers?
Register finalizers for X pixmaps and cursors
Use autotools instead of imake
Wrap WOOL objects in smobs
After beguiling: fix X pixmap and cursor management (relying on finalizers is bad). GWM sometimes stores pointers in the server-side X resource database, and as part of the BDW-GC patch it stores those objects in a global list to keep them alive; it should do reference-counting or something.
Atoms are stored in a global hash table, so they'll never be freed.