anchor.diff:    (in? x #'== #'string== #'number== #'integer==))
   
   (defun =-href (value hash key)
  -  (!? (& (defined? hash.__tre-test)
  -         hash.__tre-test)
  +  (!? (%htest hash)
         (? (%href-==? !)
            (%%%=-aref value hash key)
            (=-href-obj value hash key))
  
positive.code: ; tré – Copyright (c) 2009–2015 Sven Michael Klose <pixel@hugbox.org>
  
  (declare-cps-exception %%objkey %%make-objkey %%numkey %make-href-object-key %href-key =-href-obj %href-==? hash-table? =-href)
  
  (defvar *obj-id-counter* 0)
  (defvar *obj-keys*       (%%%make-hash-table))
  
negative.code:   (aprog1 (%%%make-hash-table)
      (= !.__tre-test test)))
  
  (defun hash-table? (x)
    (& (object? x)
       (undefined? x.__class)))
  
  (defun %htest (x)
    (& (defined? x.__tre-test)
       x.__tre-test))
  
  (defun %%objkey ()   (%%%string+ "~~O" (= *obj-id-counter* (%%%+ 1 *obj-id-counter*))))
  (defun %%numkey (x)  (%%%string+ "~~N" x))
  
  (defun hashkeys (hash)
    (carlist (%property-list hash)))
  
  (defun %make-href-object-key (key)
    (unless (defined? key.__tre-object-id)
      (alet (%%objkey)
        (= key.__tre-object-id !)
        (%%%=-aref key *obj-keys* !)))
    key.__tre-object-id)
  