 (run-example example-c [1])
 (run-example example-c [7])
 (run-example example-c [10])
-
-(.join (make-array 10) " ")
 
 (defn print-stack
   ([frame]

    :ref (run-ref program node inputs stack)))

(defn run-data [program node inputs stack]
  (case (:kind node)
    :value (:value node)
    :vector (into []
                  (for [value (:value node)]
                    (run-data program value inputs stack)))
    :map (into {}
               (for [[key value] (:value node)]
                 [(run-data program key inputs stack) (run-data program value inputs stack)]))))

(defn run-ref [program node inputs stack]
  (case (:kind node)
    :cljs (apply (:fn node) inputs)
    :pipe (run-pipe program (get program (:id node)) inputs stack)))

(defrecord MatchFailure [])

(ns aurora.interpreter)

;; interpreter

(defrecord Cursor [path value])

(defn run-pipe [program node inputs stack]
  (let [vars #js {}
