I have a few of questions about fluids:
Do you like the gc-count idea or is it just an implementation hack?
Are there advantages to implementing a fluid as an object (rather than, say, being named by a symbol)? Would you typically keep references to fluid objects in data structures or are they usually stored in global variables?
Similarly, is it important that the gc can remove unreferenced fluid objects containing values for threads that are still alive?
I'm wondering if it would be better to implement a per-thread fluid table, rather than the current implementation of a per-fluid thread table.