anchor.diff:                   (< min-minimax (abl-mindist node)))
                  abl)))
   
  -
   (defun prune-downward-2 (node point nearest abl)
     "2. an actual distance from P to a given object O
   which is greater than the MINMAXDIST(P,M) for
  
positive.code:  between 2 points"
    (ematch *tree*
      ((rectangle root)
       (%nns root point (list nil MOST-POSITIVE-DOUBLE-FLOAT)
             distance-function))))
  
  (export '(nearest-neighbor-search
            mindist
            minimax-dist
            abl-element
            abl-mindist
            abl-node
            abl-minimax-dist))
  
  (defstruct (abl-element (:conc-name abl-))
    (node nil :type spatial-tree-node)
    (mindist 0 :type number)
    (minimax-dist 0 :type number))
  
  (defun %nns (node point nearest fn)
    (match node
      ((spatial-tree-leaf-node children)
       (reduce (lambda (best current)
                 (match best
                   ((list _ mindist)
                    (let ((dist (funcall fn point current)))
                      (if (< dist mindist)
                          (list current dist)
                          best)))))
               children
               :initial-value nearest))
  
negative.code: it as an estimate of the NN distance) because M
  contains an object O’ which is nearer to P (theorem
  2). This is also used in downward pruning."
  
    ;; ????
    ;; does it mean there are raw objects in abl ?
    )
    
  (defun prune-upward (node point nearest abl)
    "(3.1) 3. every MBR M with MINDIST(P,M) greater than
  the actual distance from P to a given object O is
  discarded because it cannot enclose an object nearer
  than O (theorem 1). We use this in upward pruning.
  
   (3.2) we take this new estimate of the NN and
  apply pruning strategy 3 to remove all branches with
  M1ND1S7’(P, M) > Nearest for all MBRs M in the
  ABL."
    (declare (ignorable node point))
    (match nearest
      ((nearest-element (object _) (dist nearest-dist))
       (remove-if (lambda (node)
                    (< nearest-dist (abl-mindist node)))
                  abl))))