   (let [render (fn [state] [(apply render-body (:rum/react-component state) (:rum/args state)) state])]
     (build-ctor render mixins display-name)))
 
-(defn request-render [comp]
+(defn request-render [^js/React.Component comp]
   (.forceUpdate comp))
 
 (defn mount


(defn state
  "Given React component, returns Rum state associated with it."
  [comp]
  (gobj/get (.-state comp) ":rum/state"))

(defn- extend! [obj props]

   {:will-mount
    (fn [state]
      (let [local-state (atom initial)
            ^js/React.Component component (:rum/react-component state)]
        (add-watch local-state key
                   (fn [_ _ p n]
                     (when (not= p n)
