"If someone defines a new kind of function, for instance, they register a coercion from that type to 'fn, and they can automatically pass it to almost any utility that expects a function; if those utilities are in modules protected from that registry change, that defeats the purpose."
That's an excellent point, and I hadn't considered that. As I mentioned in the module thread, it uses (new-namespace) to create a clean slate, right? I could provide a way to add stuff to (new-namespace); in essence changing what the built-ins are. Sounds both dangerous, yet extremely malleable and congruent with Arc's spirit.