     (keyword? value) (keyword-template value)
     (symbol? value) (symbol-template value)
     (fn? value) (fn-template value)
+    (satisfies? IDeref value) (deref-template value)
     ))
 
 (defn header-container-template [value]


(defn index-template [value]
  (template "span" "color:#881391" value INDEX_SEPARATOR))

; TODO: abbreviate long strings
(defn string-template [value]

  (.concat (template "ol" "list-style-type:none; padding-left:0px; margin-top:0px; margin-bottom:0px; margin-left:12px")
           (body-line-templates value)))

(defn something-abbreviated? [value]
  (if (coll? value)
    (some #(something-abbreviated? %) value)
    (= ABBREVIATION value)))

(defn abbreviated? [template]
  (something-abbreviated? (js->clj template)))

(defn header-hook [value]
  (if (cljs-value? value)
