              :set
              :quote
              :meta
+             :deprecated-meta
              :deref
              :syntax-quote
              :var
              :fn
-             :deprecated-meta
              :unquote-splicing
              :unquote
              :string

(def open-char "\\")
(def symbol-exclusion #"[^\(\[\#\{\\\"\~\%\:\,\s\!\;\'\@\`;0-9]")
(def ^{:private true} prefixes
  #{open-list open-vector open-map open-set open-quote open-meta open-deref open-syntax-quote
    open-fn open-var open-deprecated-meta open-string open-regex open-unquote-splicing
    open-unquote open-anon-arg open-keyword open-discard whitespace open-comment
    open-char})


    (= :set t) (balanced :open :close-set abstract-children)
    (= :quote t) (unbalanced :open abstract-children)
    ;(= :meta t) (unbalanced :open abstract-children)
    (#{:meta :deprecated-meta} t)
      (let [[meta & rest] abstract-children]
        (concat (token :meta (node-count meta))
                (mapcat identity (view-children-seq tokens-view rest)))) 
    (= :reader-literal t) (let [body (peek abstract-children)]
                            (concat (token :reader-literal (- count (node-count body)))
                                    (body tokens-view)
