     (fn type-matcher [node]
       (= (type node) single-selector))))
 
+;;; TODO make this a protocol function
 (defn- compile-selector* [selector]
   (cond
     (vector? selector)

                   predicates+visitors)))
        node)))

(defn normalize-visitor [visitor]
  (cond
    (vector? visitor)

           true
           (html/has-class? dom-node class)))))

;;; TODO make this a protocol function
(defn- compile-selector
  "Creates a node matching predicate from a single selector."
  [single-selector]
