anchor.diff:  
   (defun string? (x)
     "Check whether X is a string."
  -  (= (type x) "string"))
  +  (or (= (type# x) "string")
  +      (and (= (type# x) "table")
  +           (= (get-idx x :tag) "string"))))
   
   (defun number? (x)
     "Check whether X is a number."
  -  (= (type x) "number"))
  +  (or (= (type# x) "number")
  +      (and (= (type# x) "table")
  +           (= (get-idx x :tag) "number"))))
   
   (defun symbol? (x)
     "Check whether X is a symbol."
  
positive.code:    - A symbol
     - A key
     - A function"
    (/= (type# x) "table"))
  
  (defun falsey? (x)
    "Check whether X is falsey, that is, it is either `false` or does
  
negative.code: 
  (defun boolean? (x)
    "Check whether X is a boolean."
    (or (= (type# x) "boolean")
        (and (= (type# x) "table")
             (= (get-idx x :tag) "boolean"))))
  
  (defun function? (x)
    "Check whether X is a function."
  