     new-elem))
 
 (declare replace-child)
-
+(declare append-child!)
 (declare append-children!)
 
 (defn- try-diff-subseq [parent cur-child new-children]

  (.removeAttribute elem attr-name))

(defn- set-style-prop! [elem prop-name prop-value]
  (aset (.-style elem)
        prop-name
        (if (.-substring prop-value)
          prop-value
          (.toString prop-value))))

(defn- remove-style-prop! [elem prop-name]
  (js-delete (.-style elem) prop-name))


(defn- bind-style! [element styles node-state]
  (doseq [[p v] styles]
    (bind-style-prop! element p v node-state)))

(defn- get-attr-setter [element attr-name]
  (cond
