anchor.diff:  (defclass typeface ()
     ((%font-loader :initarg :font-loader :reader font-loader)
      (%name :initarg :name :reader name)
  +   (%lock :reader typeface-lock)
      (%refcount :initform 1)))
  +
  +(defmethod initialize-instance :after ((instance typeface) &key &allow-other-keys)
  +  (setf (slot-value instance '%lock) (mezzanine.supervisor:make-mutex (format nil "Typeface ~A lock" (name instance)))))
   
   (defclass font ()
     ((%typeface :initarg :typeface :reader typeface)
  
positive.code:    (%line-height :reader line-height)
     (%em-square-width :reader em-square-width)
     (%font-ascender :reader ascender)
     ;; Not protected by a lock. Multiple threads racing just do extra work, nothing incorrect.
     (%glyph-cache :reader glyph-cache)
     (%refcount :initform 1)))
  
  
negative.code: ;; font-name (lowercase) -> typeface
  (defvar *typeface-cache* (make-hash-table :test 'equal))
  ;; (lowercase font name . single-float size) -> font
  ;; This should really be a weak hash-table, to get rid of the ref-counting.
  (defvar *font-cache* (make-hash-table :test 'equal))
  
  (defun path-map-line (path function)
  