anchor.diff:  
   (defclass module ()
     ((%active :initform NIL :accessor active :allocation :class)
  -   (%threads :initform (make-hash-table :test 'equalp) :accessor threads :allocation :class))
  +   (%threads :initform (make-hash-table :test 'equalp) :accessor threads :allocation :class)
  +   (%lock :initform (bordeaux-threads:make-lock) :accessor lock :allocation :class))
     (:documentation "Base module class."))
   
   (defmacro generalize-module-accessor (name)
  
positive.code: 
    (:method ((module module))))
  
  (defmacro with-module-thread (module &body thread-body)
    (let ((uidgens (gensym "UUID"))
          (modgens (gensym "MODULE"))
          (modnamegens (gensym "MODULE-NAME")))
  
negative.code:                           :initial-bindings `((*current-server* . ,*current-server*)
                                                (*servers* . ,*servers*))))
         ,uidgens)))
  
  (defmacro with-module-lock ((module &optional (lockvar (gensym "LOCK"))) &body forms)
    `(let ((,lockvar (lock (get-module ,module))))
       (bordeaux-threads:with-lock-held (,lockvar)
         ,@forms)))
  
  (defgeneric to-module-name (name-object)
    (:documentation "Attempts to transform the given object into the keyword name for a module.")
  