 (defn parse-tree
   [state]
   state)
+
+(defn pretty [parse]
+  (if (map? parse)
+    (into [] (cons (:tag parse) (map pretty (:content parse))))
+    parse))
 
 (comment 
 (require '[net.cgrand.parsley.lrplus :as l])

               ;(p/unspaced open-string #"(?:\\.|[^\\\"])++(?!\")" :? eof)
               ;(p/unspaced open-regex #"(?:\\.|[^\\\"])++(?!\")" :? eof)
               [open-quote eof]
               [open-deprecated-meta :expr :? eof]
               [open-deref eof]
               [open-syntax-quote eof]
               [open-var eof]

    (= :syntax-quote t) (unbalanced :open abstract-children) 
    (= :var t) (unbalanced :open-var abstract-children)
    (= :fn t) (concat (token :nest 0) (balanced :open-fn :close-fn abstract-children) (token :unnest 0))
    (= :unquote-splicing t) (unbalanced :open abstract-children)
    (= :unquote t) (unbalanced :open abstract-children)
    (= :string t) (token :string count)
