diff --git a/Changelog.md b/Changelog.md
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,3 +1,8 @@
+## 1.3.1
+
+* Increased the upper-bound of base to allow < 4.9. Now builds on
+  GHC 7.10.1.
+
 ## 1.3.0
 
 * Change `on` to be variadic. `on` is now capable of parsing an arbitrary amount
diff --git a/socket-io.cabal b/socket-io.cabal
--- a/socket-io.cabal
+++ b/socket-io.cabal
@@ -1,5 +1,5 @@
 name: socket-io
-version: 1.3.0
+version: 1.3.1
 homepage: http://github.com/ocharles/engine.io
 license: BSD3
 license-file: LICENSE
@@ -24,7 +24,7 @@
   build-depends:
     aeson >=0.7 && <0.9,
     attoparsec >=0.10 && <0.13,
-    base >=4.6 && <4.8,
+    base >=4.6 && <4.9,
     bytestring >=0.10 && <0.11,
     engine-io >= 1 && <1.3,
     mtl >=2.1 && <2.3,
diff --git a/src/Network/SocketIO.hs b/src/Network/SocketIO.hs
--- a/src/Network/SocketIO.hs
+++ b/src/Network/SocketIO.hs
@@ -237,7 +237,7 @@
 -- | When an event with a given name is received, call the associated function
 -- with the array of JSON arguments.
 onJSON
-  :: (MonadState RoutingTable m, Applicative m)
+  :: (MonadState RoutingTable m)
   => Text.Text
   -> (Aeson.Array -> EventHandler a)
   -> m ()
@@ -271,7 +271,7 @@
 -- decoded by a 'Aeson.FromJSON' instance, run the associated function
 -- after decoding the event argument. Expects exactly one event argument.
 on
-  :: (MonadState RoutingTable m, OnArgs f (EventHandler a), Applicative m)
+  :: (MonadState RoutingTable m, OnArgs f (EventHandler a))
   => Text.Text -> f -> m ()
 on eventName handler =
   let eventHandler v =
@@ -289,7 +289,7 @@
 -- | When an event is received with a given name and no arguments, run the
 -- associated 'EventHandler'.
 on_
-  :: (MonadState RoutingTable m, Applicative m)
+  :: (MonadState RoutingTable m)
   => Text.Text
   -> EventHandler a
   -> m ()
