diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,16 @@
 # Revision history for reflex-dom-core
 
+## 0.6.1.0
+
+* Bump version bounds
+* Update for new dependent-map and dependent-sum version (after the "some" package split)
+* Add `MonadAtomicRef` instance for `UnrunnableT`
+* Fix ([#467](https://github.com/reflex-frp/reflex-dom/issues/467)): Prevent multiple firings of XHR response event
+* Updates for GHC 8.10
+* Move `HasSetValue` from Reflex.Dom.Widget.Input to Reflex.Dom.Builder.Class and add an instance for `TextAreaElementConfig`
+* Add `now` to the `MonadHold` instance for `UnrunnableT`
+
+
 ## 0.6.0.0
 
 * ([#375](https://github.com/reflex-frp/reflex-dom/pull/375)) **(Breaking change)** Expose resized dimensions from `resizeDetector`, `resizeDetectorWithStyle`, and `resizeDetectorWithAttrs` from `Reflex.Dom.Widget.Resize`.
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2015, Obsidian Systems LLC
+Copyright (c) 2020, Obsidian Systems LLC
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
diff --git a/reflex-dom-core.cabal b/reflex-dom-core.cabal
--- a/reflex-dom-core.cabal
+++ b/reflex-dom-core.cabal
@@ -1,8 +1,12 @@
 cabal-version: 1.24
 Name: reflex-dom-core
-Version: 0.6.0.0
+Version: 0.6.1.0
 Synopsis: Functional Reactive Web Apps with Reflex
 Description:
+  Web applications without callbacks or side-effects.
+  Reflex-DOM brings the power of functional reactive programming (FRP) to the web.
+  Build HTML and other Document Object Model (DOM) data with a pure functional interface.
+  .
   Reflex-DOM is a Functional Reactive web framework based on the Reflex FRP engine: <https://reflex-frp.org/>.
   .
   The @reflex-dom@ package is a small wrapper around the @reflex-dom-core@ package. It pulls in the
@@ -56,16 +60,16 @@
     aeson >= 0.8 && < 1.5,
     base >= 4.7 && < 4.14,
     bifunctors >= 4.2 && < 6,
-    bimap >= 0.3 && < 0.4,
+    bimap >= 0.3 && < 0.5,
     blaze-builder >= 0.4.1 && < 0.5,
     bytestring == 0.10.*,
     case-insensitive < 1.3,
     containers >= 0.6 && < 0.7,
-    constraints >= 0.9 && < 0.12,
+    constraints >= 0.9 && < 0.13,
     contravariant >= 1.4 && < 1.6,
     data-default >= 0.5 && < 0.8,
-    dependent-map >= 0.3 && < 0.4,
-    dependent-sum >= 0.6 && < 0.7,
+    dependent-map >= 0.3 && < 0.5,
+    dependent-sum >= 0.6 && < 0.8,
     dependent-sum-template >= 0.1 && < 0.2,
     directory >= 1.2 && < 1.4,
     exception-transformers == 0.4.*,
@@ -79,7 +83,7 @@
     primitive >= 0.5 && < 0.8,
     random >= 1.1 && < 1.2,
     ref-tf == 0.4.*,
-    reflex >= 0.6.2 && < 0.8,
+    reflex >= 0.8 && < 0.9,
     semigroups >= 0.16 && < 0.20,
     stm >= 2.4 && < 2.6,
     text == 1.2.*,
@@ -100,7 +104,7 @@
   if flag(split-these)
     build-depends:
       semialign >= 1 && < 1.2,
-      these >= 1 && < 1.1
+      these >= 1 && < 1.2
   else
     build-depends:
       these >= 0.4 && < 0.9
diff --git a/src/Reflex/Dom/Builder/Class.hs b/src/Reflex/Dom/Builder/Class.hs
--- a/src/Reflex/Dom/Builder/Class.hs
+++ b/src/Reflex/Dom/Builder/Class.hs
@@ -744,3 +744,11 @@
 instance HasDocument m => HasDocument (PostBuildT t m)
 instance HasDocument m => HasDocument (RequesterT t request response m)
 instance HasDocument m => HasDocument (QueryT t q m)
+
+class HasSetValue a where
+  type SetValue a :: *
+  setValue :: Lens' a (SetValue a)
+  
+instance Reflex t => HasSetValue (TextAreaElementConfig er t m) where
+  type SetValue (TextAreaElementConfig er t m) = Event t Text
+  setValue = textAreaElementConfig_setValue
diff --git a/src/Reflex/Dom/Builder/Immediate.hs b/src/Reflex/Dom/Builder/Immediate.hs
--- a/src/Reflex/Dom/Builder/Immediate.hs
+++ b/src/Reflex/Dom/Builder/Immediate.hs
@@ -135,11 +135,13 @@
 import Data.Functor.Constant
 import Data.Functor.Misc
 import Data.Functor.Product
+import Data.GADT.Compare (GCompare)
 import Data.IORef
 import Data.IntMap.Strict (IntMap)
 import Data.Maybe
 import Data.Monoid ((<>))
 import Data.Some (Some(..))
+import Data.GADT.Compare (GCompare)
 import Data.String (IsString)
 import Data.Text (Text)
 import Foreign.JavaScript.Internal.Utils
@@ -1632,7 +1634,7 @@
 
 {-# INLINABLE traverseDMapWithKeyWithAdjust' #-}
 traverseDMapWithKeyWithAdjust'
-  :: forall s t m (k :: * -> *) v v'. (Adjustable t m, MonadHold t m, MonadFix m, MonadJSM m, PrimMonad m, DMap.GCompare k, RawDocument (DomBuilderSpace (HydrationDomBuilderT s t m)) ~ Document)
+  :: forall s t m (k :: * -> *) v v'. (Adjustable t m, MonadHold t m, MonadFix m, MonadJSM m, PrimMonad m, GCompare k, RawDocument (DomBuilderSpace (HydrationDomBuilderT s t m)) ~ Document)
   => (forall a. k a -> v a -> HydrationDomBuilderT s t m (v' a))
   -> DMap k v
   -> Event t (PatchDMap k v)
@@ -1752,7 +1754,7 @@
   ::
   ( Adjustable t m
   , MonadHold t m
-  , DMap.GCompare k
+  , GCompare k
   , MonadIO m
   , MonadJSM m
   , PrimMonad m
diff --git a/src/Reflex/Dom/Prerender.hs b/src/Reflex/Dom/Prerender.hs
--- a/src/Reflex/Dom/Prerender.hs
+++ b/src/Reflex/Dom/Prerender.hs
@@ -24,7 +24,7 @@
 
 import Control.Monad.Primitive (PrimMonad(..))
 import Control.Monad.Reader
-import Control.Monad.Ref (MonadRef(..))
+import Control.Monad.Ref (MonadRef(..), MonadAtomicRef(..))
 import Data.IORef (IORef, newIORef)
 import Data.Semigroup (Semigroup)
 import Data.Text (Text)
@@ -165,6 +165,8 @@
   newRef _ = unrunnable
   readRef _ = unrunnable
   writeRef _ _ = unrunnable
+instance Monad m => MonadAtomicRef (UnrunnableT js t m) where
+  atomicModifyRef _ _ = unrunnable
 instance Monad m => HasDocument (UnrunnableT js t m) where
   askDocument = unrunnable
 instance Monad m => HasJSContext (UnrunnableT js t m) where
@@ -203,12 +205,13 @@
   newFanEventWithTrigger _ = unrunnable
 instance Monad m => MonadFix (UnrunnableT js t m) where
   mfix _ = unrunnable
-instance Monad m => MonadHold t (UnrunnableT js t m) where
+instance (Monad m, MonadHold t m) => MonadHold t (UnrunnableT js t m) where
   hold _ _ = unrunnable
   holdDyn _ _ = unrunnable
   holdIncremental _ _ = unrunnable
   buildDynamic _ _ = unrunnable
   headE _ = unrunnable
+  now = unrunnable
 instance Monad m => MonadSample t (UnrunnableT js t m) where
   sample _ = unrunnable
 instance Monad m => MonadIO (UnrunnableT js t m) where
@@ -226,7 +229,7 @@
   withRenderHook _ _ = unrunnable
   requestDomAction _ = unrunnable
   requestDomAction_ _ = unrunnable
-instance (Reflex t, Monad m) => Prerender JS' t (UnrunnableT js t m) where
+instance (Reflex t, Monad m, MonadHold t m) => Prerender JS' t (UnrunnableT js t m) where
   type Client (UnrunnableT js t m) = UnrunnableT js t m
   prerender _ _ = unrunnable
 
diff --git a/src/Reflex/Dom/Widget/Input.hs b/src/Reflex/Dom/Widget/Input.hs
--- a/src/Reflex/Dom/Widget/Input.hs
+++ b/src/Reflex/Dom/Widget/Input.hs
@@ -629,9 +629,6 @@
   type Attrs (FileInputConfig t) = Dynamic t (Map Text Text)
   attributes = fileInputConfig_attributes
 
-class HasSetValue a where
-  type SetValue a :: *
-  setValue :: Lens' a (SetValue a)
 
 instance HasSetValue (TextAreaConfig t) where
   type SetValue (TextAreaConfig t) = Event t Text
diff --git a/src/Reflex/Dom/Xhr/Foreign.hs b/src/Reflex/Dom/Xhr/Foreign.hs
--- a/src/Reflex/Dom/Xhr/Foreign.hs
+++ b/src/Reflex/Dom/Xhr/Foreign.hs
@@ -15,7 +15,7 @@
 import Data.ByteString (ByteString)
 import Foreign.JavaScript.Utils (bsFromMutableArrayBuffer, bsToArrayBuffer)
 import GHCJS.DOM.Enums
-import GHCJS.DOM.EventM (EventM, on)
+import GHCJS.DOM.EventM (EventM, on, onSync)
 import GHCJS.DOM.EventTarget (dispatchEvent)
 import GHCJS.DOM.Types (MonadJSM, ToJSString, FormData, Document, Blob (..), ArrayBuffer (..), JSVal, JSM, IsEvent, XMLHttpRequestProgressEvent, ProgressEvent, Event, XMLHttpRequestUpload, FromJSString, ArrayBufferView (..), liftJSM, castTo)
 import GHCJS.DOM.XMLHttpRequest
@@ -114,7 +114,7 @@
 xmlHttpRequestOntimeout = (`on` timeout)
 
 xmlHttpRequestOnreadystatechange :: XMLHttpRequest -> EventM XMLHttpRequest Event () -> JSM (JSM ())
-xmlHttpRequestOnreadystatechange = (`on` readyStateChange)
+xmlHttpRequestOnreadystatechange = (`onSync` readyStateChange)
 
 xmlHttpRequestSetTimeout :: MonadJSM m => XMLHttpRequest -> Word -> m ()
 xmlHttpRequestSetTimeout = setTimeout
diff --git a/test/gc.hs b/test/gc.hs
--- a/test/gc.hs
+++ b/test/gc.hs
@@ -47,7 +47,7 @@
 
 main :: IO ()
 main = do
-  handle (\(_ :: IOError) -> return ()) $ unshareNetork -- If we run into an exception with sandboxing, just don't bother
+  handle (\(_ :: IOError) -> return ()) $ unshareNetwork -- If we run into an exception with sandboxing, just don't bother
   withSandboxedChromeFlags True $ \chromeFlags -> do
     mainThread <- myThreadId
     browserProcess <- spawnCommand $ mconcat
diff --git a/test/hydration.hs b/test/hydration.hs
--- a/test/hydration.hs
+++ b/test/hydration.hs
@@ -137,7 +137,7 @@
 
 main :: IO ()
 main = do
-  unshareNetork
+  unshareNetwork
   isHeadless <- (== Nothing) <$> lookupEnv "NO_HEADLESS"
   withSandboxedChromeFlags isHeadless $ \chromeFlags -> do
     withSeleniumServer $ \selenium -> do
