Separation of functions through modules:
(import [read-from-string] "./reader")
(import [meta with-meta symbol? symbol keyword? keyword namespace
unquote? unquote-splicing? quote? syntax-quote? name gensym pr-str] "./ast")
(import [empty? count list? list first second third rest cons conj
reverse reduce vec last