 (declare ^:dynamic *non-reactive*)
 
 
+;;; Argv access
+
 (defn extract-props [v]
   (let [p (nth v 1 nil)]
     (if (map? p) p)))

    (if (> (count v) first-child)
      (subvec v first-child))))

(defn get-argv [c]
  (.' c :props.argv))

(defn get-props [c]
  (-> (.' c :props.argv) extract-props))

(defn get-children [c]
  (-> (.' c :props.argv) extract-children))

(defn reagent-component? [c]
  (-> (.' c :props.argv) nil? not))


;;; State

    :componentWillUpdate
    (fn [nextprops]
      (this-as c
               (f c (props-argv nextprops))))

    :componentDidUpdate
    (fn [oldprops]
      (this-as c
               (f c (props-argv oldprops))))

    :componentWillMount
    (fn []
