clj_multimethod
Clojure multimethod.
Implements the creation and update of a multimethod's dispatch map. The dispatch map is kept in its own BEAM module so that it can be updated at runtime independently. This eliminates the risk of killing processes that might be currently using the module where the dispatch map is kept.
There is some name mangling when generating the name of the module for the dispatch map to avoid using invalid filename characters.
The code in this module should only be used by the multimethod related functions in theclojure.core
namespace.