anchor.diff:    (:export #:get-iterator
              #:make-hash-key-iterator
              #:make-hash-value-iterator
  +           #:make-character-stream-iterator
  +           #:make-byte-stream-iterator
  +           #:make-line-iterator
              #:iteration-ended #:end-iteration
              #:do-iterator #:do-iterable
              #:inext
  
positive.code:   (let ((vals (loop for v being the hash-values of h
                    collect v)))
      (get-iterator vals)))
  
  (defun inext (iterator &rest args)
    "Return the next value of an iterator and whether or not an actual value was
  
negative.code:     (let ((key-iterator (make-hash-key-iterator h)))
        (lambda ()
          (let ((key (funcall key-iterator)))
            (cons key (gethash key h))))))
  
    (:method ((s stream))
      (etypecase (stream-element-type s)
        (character (make-character-stream-iterator s))
        (integer   (make-byte-stream-iterator s)))))
  
  (defun make-hash-key-iterator (h)
    (declare (hash-table h))
  