            @varr
            f)
          f)
-       f)
-     ) form))
+       f)) form))
 
 (defrecord UnreadableForm [form-string form-class])
 


(defmethod templatable? clojure.lang.Keyword [v] true)

(defn- bind-constants [ns form]
  (comment
    (z/root (walk/prewalk form (fn [n]
                                 (let [s (z/sexpr n)]
                                   (if (and (symbol? s)
                                            (ns-resolve ns s))
                                     (when-let [varr (get (ns-map ns) s)]
                                       (when (templatable? @varr)
                                         (z/replace n @varr)))
                                     n))))))

  ;; TODO replace above with this
  (clojure.walk/postwalk
   (fn [f]
     (if (and (symbol? f)

  (symbolize-keys (merge (select-keys row-data (map (comp keyword name) (:keys bindings)))
                         (select-keys row-data (map name (:strs bindings))))))

(defmulti ^:private templatable?
  "Predicate that returns true if the supplied argument should be emitted when
  attempting to inline global vars in a graph template.

  Used with bind-constants."

  class)

(defmethod templatable? nil [v] true)

