anchor.diff:    ((filter :initarg :filter :reader filter)))
   
   (defun compatible? (filter1 filter2)
  -  (check-type filter1 bloom-filter)
  -  (check-type filter2 bloom-filter)
  +  (declare (bloom-filter filter1 filter2))
     (and (= (filter-order filter1)
             (filter-order filter2))
          (= (filter-degree filter1)
  
positive.code: 
  (defun filter-nunion (filter1 filter2)
    "Return the union of FILTER1 and FILTER2, overwriting FILTER1."
    (unless (compatible? filter1 filter2)
      (error 'incompatible-filter :filter filter2))
    (bit-ior (filter-array filter1) (filter-array filter2)
  
negative.code: 
  (defun copy-filter (filter)
    "Return a new Bloom filter like FILTER."
    (declare (bloom-filter filter))
    (filter-nunion
     (make-compatible-filter filter)
     filter))
  
  (defun filter-union (filter1 filter2)
    "Return the union of FILTER1 and FILTER2 as a new filter."
    (declare (bloom-filter filter1 filter2))
    (unless (compatible? filter1 filter2)
      (error 'incompatible-filter :filter filter2))
    (let ((filter3 (make-compatible-filter filter1)))
  