     :prefix "-"
     :main false))
 
+(defn- make-seqable
+  [x]
+  `(seq ~x))
 
 (defn upper-first
   [string]

(defn -visitBlock
  [this ^JestParser$BlockContext ctx]

  (cond
    (. ctx expression) (self-visit this ctx expression)

    (. ctx term) (into [] (map #(.. this (visitStatementTerm %)) (. ctx term)))

    (. ctx scope)  (map #(.. this (visitVarScope %)) (. ctx scope))

    :else (throw (new ClojureSourceGenerator$BadSource ctx))))


(defn -visitVarScope

  (let [names (into [] (map #(symbol (. % getText)) (. ctx name)))
        vals (into [] (map #(.. this (visitExpression %)) (. ctx exp)))
        bindings (apply concat (zip names vals))
        expressions (map #(. this (visitStatementTerm %)) (. ctx terms))]
    `(let [~@bindings] ~@expressions)))



(defn -visitConditional
  [this ^JestParser$ConditionalContext ctx]

  (let [conditions (map #( .. this (visitExpression %)) (merge-items (. ctx ifCondition) (. ctx elifExpression)))
        results (map #(.. this (visitBlock %)) (merge-items (. ctx iftrue) (. ctx elifBlock)))
        else (if (. ctx elseBlock) (.. this (visitBlock (. ctx elseBlock))) nil)
        single-if (= (. conditions size) 1)]

    (cond
