diff --git a/demo/Client.hs b/demo/Client.hs
--- a/demo/Client.hs
+++ b/demo/Client.hs
@@ -1,5 +1,3 @@
-{-# LANGUAGE TypeOperators #-}
-
 module Main (main) where
 
 import Signatures (concatenateSig, incrementSig)
diff --git a/demo/Server.hs b/demo/Server.hs
--- a/demo/Server.hs
+++ b/demo/Server.hs
@@ -1,5 +1,4 @@
-{-# LANGUAGE OverloadedStrings,
-             TypeOperators #-}
+{-# LANGUAGE OverloadedStrings #-}
 
 module Main (main) where
 
diff --git a/demo/Signatures.hs b/demo/Signatures.hs
--- a/demo/Signatures.hs
+++ b/demo/Signatures.hs
@@ -1,5 +1,5 @@
-{-# LANGUAGE OverloadedStrings,
-             TypeOperators #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE TypeOperators #-}
 
 module Signatures where
 
diff --git a/json-rpc-client.cabal b/json-rpc-client.cabal
--- a/json-rpc-client.cabal
+++ b/json-rpc-client.cabal
@@ -1,5 +1,5 @@
 name:                json-rpc-client
-version:             0.2.3.0
+version:             0.2.4.0
 license:             MIT
 license-file:        LICENSE
 category:            Network, JSON
@@ -37,7 +37,7 @@
 library
   exposed-modules:     Network.JsonRpc.Client
                        Network.JsonRpc.ServerAdapter
-  build-depends:       base >=4.3.1 && <4.9,
+  build-depends:       base >=4.3.1 && <4.10,
                        json-rpc-server >=0.2 && <0.3,
                        aeson >=0.7 && <0.12,
                        bytestring >=0.9.1 && <0.11,
@@ -49,20 +49,30 @@
   hs-source-dirs:      src
   default-language:    Haskell2010
   ghc-options:         -Wall
+  other-extensions:    CPP,
+                       FlexibleContexts,
+                       FlexibleInstances,
+                       FunctionalDependencies,
+                       MultiParamTypeClasses,
+                       OverloadedStrings,
+                       TypeOperators,
+                       UndecidableInstances
 
 executable demo-server
   hs-source-dirs:      demo
   main-is:             Server.hs
   other-modules:       Signatures
   if flag (demo)
-    build-depends:       base >=4.3.1 && <4.9,
+    build-depends:       base,
                          json-rpc-client,
-                         json-rpc-server >=0.2 && <0.3,
-                         aeson >=0.7 && <0.12,
-                         bytestring >=0.9.2 && <0.11,
-                         mtl >=2.2.1 && <2.3,
-                         text >=0.11.2 && <1.3
+                         json-rpc-server,
+                         aeson,
+                         bytestring >=0.9.2,
+                         mtl,
+                         text
     default-language:    Haskell2010
+    other-extensions:    OverloadedStrings,
+                         TypeOperators
   else
     buildable:           False
 
@@ -71,15 +81,17 @@
   main-is:             Client.hs
   other-modules:       Signatures
   if flag (demo)
-    build-depends:       base >=4.3.1 && <4.9,
+    build-depends:       base,
                          json-rpc-client,
-                         json-rpc-server >=0.2 && <0.3,
+                         json-rpc-server,
                          process >=1.1.0 && <1.5,
-                         aeson >=0.7 && <0.12,
-                         bytestring >=0.9.2 && <0.11,
-                         mtl >=2.2.1 && <2.3,
-                         text >=0.11.2 && <1.3
+                         aeson,
+                         bytestring >=0.9.2,
+                         mtl,
+                         text
     default-language:    Haskell2010
+    other-extensions:    OverloadedStrings,
+                         TypeOperators
   else
     buildable:           False
 
@@ -88,16 +100,16 @@
   main-is:             All.hs
   other-modules:       Tests, Properties
   type:                exitcode-stdio-1.0
-  build-depends:       base >=4.3.1 && <4.9,
+  build-depends:       base,
                        json-rpc-client,
-                       json-rpc-server >=0.2 && <0.3,
-                       aeson >=0.7 && <0.12,
-                       bytestring >=0.9.1 && <0.11,
-                       mtl >=2.2.1 && <2.3,
+                       json-rpc-server,
+                       aeson,
+                       bytestring,
+                       mtl,
                        scientific >=0.2 && <0.4,
-                       text >=0.11.2 && <1.3,
-                       unordered-containers >=0.2.3 && <0.3,
-                       vector >=0.10 && <0.12,
+                       text,
+                       unordered-containers,
+                       vector,
                        HUnit >=1.2.4 && <1.4,
                        QuickCheck >=2.4.2 && <2.9,
                        test-framework >=0.6 && <0.9,
@@ -105,3 +117,11 @@
                        test-framework-quickcheck2 >=0.3 && <0.4
   default-language:    Haskell2010
   ghc-options:         -Wall -fno-warn-missing-signatures -fno-warn-orphans
+  other-extensions:    CPP,
+                       FlexibleContexts,
+                       FlexibleInstances,
+                       MultiParamTypeClasses,
+                       OverloadedStrings,
+                       TypeOperators,
+                       TypeSynonymInstances,
+                       UndecidableInstances
diff --git a/src/Network/JsonRpc/Client.hs b/src/Network/JsonRpc/Client.hs
--- a/src/Network/JsonRpc/Client.hs
+++ b/src/Network/JsonRpc/Client.hs
@@ -1,11 +1,11 @@
-{-# LANGUAGE CPP,
-             OverloadedStrings,
-             MultiParamTypeClasses,
-             FunctionalDependencies,
-             FlexibleInstances,
-             UndecidableInstances,
-             TypeOperators,
-             FlexibleContexts #-}
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE FunctionalDependencies #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE UndecidableInstances #-}
+{-# LANGUAGE TypeOperators #-}
+{-# LANGUAGE FlexibleContexts #-}
 
 -- | Functions for implementing the client side of JSON-RPC 2.0.
 --   See <http://www.jsonrpc.org/specification>.
diff --git a/src/Network/JsonRpc/ServerAdapter.hs b/src/Network/JsonRpc/ServerAdapter.hs
--- a/src/Network/JsonRpc/ServerAdapter.hs
+++ b/src/Network/JsonRpc/ServerAdapter.hs
@@ -1,7 +1,7 @@
-{-# LANGUAGE MultiParamTypeClasses,
-             FunctionalDependencies,
-             UndecidableInstances,
-             TypeOperators #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE FunctionalDependencies #-}
+{-# LANGUAGE UndecidableInstances #-}
+{-# LANGUAGE TypeOperators #-}
 
 -- | Convenience function for creating server-side methods from
 --   'Signature's with the package
diff --git a/tests/Properties.hs b/tests/Properties.hs
--- a/tests/Properties.hs
+++ b/tests/Properties.hs
@@ -1,11 +1,11 @@
-{-# LANGUAGE CPP,
-             OverloadedStrings,
-             TypeOperators,
-             MultiParamTypeClasses,
-             TypeSynonymInstances,
-             UndecidableInstances,
-             FlexibleContexts,
-             FlexibleInstances #-}
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE TypeOperators #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE TypeSynonymInstances #-}
+{-# LANGUAGE UndecidableInstances #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE FlexibleInstances #-}
 
 module Properties (properties) where
 
diff --git a/tests/Tests.hs b/tests/Tests.hs
--- a/tests/Tests.hs
+++ b/tests/Tests.hs
@@ -1,6 +1,6 @@
-{-# LANGUAGE CPP,
-             OverloadedStrings,
-             TypeOperators #-}
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE TypeOperators #-}
 
 module Tests (tests) where
 
