anchor.diff:       thing)
       (array
        (gethash (aref thing 0) *vars*))
  +    (keyword
  +     (format NIL ":~a" (string-downcase thing)))
       (symbol
        (string-downcase thing))
       (T (princ-to-string thing))))
  
positive.code:                   for func in cfunc
                    do (loop for arg in cargs
                             do (push (format NIL "~a~a" func arg) result))
                    finally (return (compile-constraint :and (append (nreverse result) (cddr args))))))
            args))))
  
  (defun compile-selector (selector)
    (etypecase selector
  
negative.code: (defgeneric compile-attribute (key value)
    (:method (key (value list))
      (list (list :attribute
                  (string-downcase key)
                  (format NIL "~{~a~^ ~}" (mapcar #'resolve value)))))
  
    (:method (key value)
  