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:   (aprog1 (%%%make-hash-table)
      (= !.__tre-test test)))
  
  (defun %%objkey (x)     (%%%string+ "~~O" x))
  (defun %%make-objkey () (%%objkey (= *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 (%%make-objkey)
        (= key.__tre-object-id !)
        (%%%=-aref key *obj-keys* !)))
    key.__tre-object-id)
  
negative.code:         (%href-==? !) (%%%aref hash key)
          (%href-user hash key))
        (%%%aref hash key)))
  
  (defun hash-merge (a b)
    (when (| a b)
  