   [p]
   (->> p
        split-dbl-brackets
-       (map (fn [x] (condp #(= % (count %2)) x
-                      0 nil
-                      1 [:om-text (first x)]
-                      2 [:om-text (-> x drop-delim first)]
-                      3 [:om-code (second x)])))
-       (filter #(-> % second not-empty))))
+       (mapv (fn [x] (condp #(= % (count %2)) x
+                       0 nil
+                       1 [:om-text (first x)]
+                       2 [:om-text (-> x drop-delim first)]
+                       3 [:om-code (second x)])))
+       (filterv #(-> % second not-empty))))
 
 (defn grab-om-attrs
   [a ks]

    h
    nil))

(defn has-om-if? [h] (-> h like-html-vec? second :om-lette :om-if))
(defn has-om-repeat? [h] (-> h like-html-vec? second :om-lette :om-repeat))
(defn is-om-text? [h] (and (vector? h) (= (first h) :om-text)))
(defn is-om-code? [h] (and (vector? h) (= (first h) :om-code)))

(defn strip-attrs [tag & xattrs]
  (let [[name attrs & rest] tag] (vec (concat [name (apply dissoc attrs xattrs)] rest))))

                  (assoc :om-lette (select-keys a ks)))
              a))]
    r))

(defn eval-om-if-expr
  [x state]
  (get state (apply str (mapcat second x))))

(defn html->template
  [h]
