anchor.diff:            (let ((hash-table (alist-hash-table (utable cdr) :size 32)))
               (setf (gethash car hash-table) ucons)
               (setf (utable cdr) hash-table))))))
  +
  +;;; Lookup of root nodes, i.e., uconses whose cdr is NIL.
  +
  +(defstruct (root-table (:copier nil)
  +                       (:predicate nil))
  +  (cache (make-hash-table) :read-only t :type hash-table)
  +  (small-integer-cache
  +   (let ((array (make-array 32)))
  +     (dotimes (index 32 array)
  +       (setf (aref array index)
  +             (make-fresh-ucons index nil))))
  +   :read-only t
  +   :type (simple-array ucons (32))))
  +
  +(declaim (root-table *root-table*))
  +(defvar *root-table* (make-root-table)
  +  "The table of all uconses whose cdr is NIL.")
  +
  +(defun ucons-leaf (car)
  +  (if (typep car '(integer 0 (32)))
  +      ;; Go to the small integer cache
  +      (aref (root-table-small-integer-cache *root-table*) car)
  +      ;; Else, go to the slightly slower general cache.
  +      (let ((cache (root-table-cache *root-table*)))
  +        (values
  +         (ensure-gethash car cache (make-fresh-ucons car nil))))))
   
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   ;;;
  
positive.code:    #:umapcar
     #:ulength
     #:copy-ulist
     #:copy-utree))
  
  (in-package :ucons)
  
  
negative.code:                   finally (return (ucons-list car cdr)))
              (ucons-hash car cdr)))))
  
  ;;; Called if the UTABLE of CDR is a hash table
  (defun ucons-hash (car cdr)
    (declare (ucons cdr))
  