anchor.diff:    "Return an estimate of how many steps to clear all 28 pyramid cards."
     (declare (optimize speed (safety 0))
              (type state-cache state-cache))
  -  (svref state-cache 1))
  +  (state-cache-h-cost state-cache))
   
   (declaim (inline state-unwinnable-p))
   (defun state-unwinnable-p (state state-cache)
  
positive.code:   (declare (optimize speed (safety 0))
             (type state state)
             (type state-cache state-cache))
    (dolist (mask (svref state-cache 2))
      (declare (type deck-flags mask))
      (when (zerop (logand mask state))
        (return-from state-unwinnable-p t))))
  
negative.code:                            (svref *unrelated-card-masks* i))
                     masks))))))
  
  (defstruct state-cache
    "SUCCESSOR-MASKS, H-COST, and UNWINNABLE-MASKS for a given PYRAMID-FLAGS."
    successor-masks
    h-cost
    unwinnable-masks)
    
  (defun make-state-caches (deck)
    "Precalculate all the data we need to speed up processing for each state.
  The result is a hash table indexed by one of 1430 PYRAMID-FLAGS, and the hash
  