anchor.diff:         (defclass ,name (module ,@direct-superclasses)
            ((%active :initform NIL :reader active :allocation :class)
             (%threads :initform (make-hash-table :test 'equalp) :accessor threads :allocation :class)
  -          (%lock :initform (bordeaux-threads:make-lock ,(string name)) :accessor lock :allocation :class)
  +          (%lock :initform (bt:make-recursive-lock ,(string name)) :accessor lock :allocation :class)
             (%storage :initform (make-hash-table :test 'equal) :accessor storage :allocation :class)
             ,@(mapcar #'(lambda (slot) (append slot '(:allocation :class))) direct-slots))
            ,@options)
  
positive.code: LOCKVAR --- A symbol the lock is bound to.
  FORMS   ::= form*"
    `(let ((,lockvar (lock (get-module ,module))))
       (bordeaux-threads:with-lock-held (,lockvar)
         ,@forms)))
  
  (defun print-module-thread-stats ()
  
negative.code: (defclass module ()
    ((%active :initform NIL :accessor active :allocation :class)
     (%threads :initform (make-hash-table :test 'equalp) :accessor threads :allocation :class)
     (%lock :initform (bt:make-recursive-lock) :accessor lock :allocation :class)
     (%storage :initform (make-hash-table :test 'equal) :accessor storage :allocation :class))
    (:documentation "Base module class."))
  
  