diff --git a/ChangeLog.md b/ChangeLog.md
deleted file mode 100644
--- a/ChangeLog.md
+++ /dev/null
@@ -1,3 +0,0 @@
-## 0.9.1.2
-
-* Conditional compilation for `Binary Text` instance [#281](https://github.com/fpco/ide-backend/issues/281)
diff --git a/IdeSession/GHC/Requests.hs b/IdeSession/GHC/Requests.hs
--- a/IdeSession/GHC/Requests.hs
+++ b/IdeSession/GHC/Requests.hs
@@ -1,7 +1,8 @@
+{-# LANGUAGE DeriveDataTypeable, DeriveGeneric, RecordWildCards #-}
+
 -- | GHC requests
 --
 -- GHC requests use "IdeSession.Types.Public" types.
-{-# LANGUAGE DeriveDataTypeable, DeriveGeneric #-}
 module IdeSession.GHC.Requests (
     GhcInitRequest(..)
   , GhcRequest(..)
@@ -79,6 +80,7 @@
       , runCmdFunction :: String
       , runCmdStdout   :: RunBufferMode
       , runCmdStderr   :: RunBufferMode
+      , runCmdPty      :: Bool
       }
   | Resume
   deriving (Typeable, Generic, Show)
@@ -165,19 +167,22 @@
 
 instance Binary RunCmd where
   put (RunStmt {..}) = do
-    putWord8 0
+    putWord8 2
     put runCmdModule
     put runCmdFunction
     put runCmdStdout
     put runCmdStderr
+    put runCmdPty
   put Resume = do
     putWord8 1
 
   get = do
     header <- getWord8
     case header of
-      0 -> RunStmt <$> get <*> get <*> get <*> get
+      -- Still respond to requests that use the old binary format.
+      0 -> RunStmt <$> get <*> get <*> get <*> get <*> return False
       1 -> return Resume
+      2 -> RunStmt <$> get <*> get <*> get <*> get <*> get
       _ -> fail "RunCmd.get: invalid header"
 
 instance Binary GhcRunRequest where
diff --git a/IdeSession/GHC/Responses.hs b/IdeSession/GHC/Responses.hs
--- a/IdeSession/GHC/Responses.hs
+++ b/IdeSession/GHC/Responses.hs
@@ -1,7 +1,8 @@
+{-# LANGUAGE DeriveDataTypeable, DeriveGeneric, RecordWildCards #-}
+
 -- | Responses from the GHC server
 --
 -- The server responds with "IdeSession.Types.Private" types
-{-# LANGUAGE DeriveDataTypeable, DeriveGeneric #-}
 module IdeSession.GHC.Responses (
     GhcInitResponse(..)
   , GhcCompileResponse(..)
diff --git a/IdeSession/Strict/Container.hs b/IdeSession/Strict/Container.hs
--- a/IdeSession/Strict/Container.hs
+++ b/IdeSession/Strict/Container.hs
@@ -31,7 +31,7 @@
 
 instance StrictContainer IntMap where
   newtype Strict IntMap v = StrictIntMap { toLazyIntMap :: IntMap v }
-    deriving Show
+    deriving (Eq, Show)
 
   force m = IntMap.foldl' (flip seq) () m `seq` StrictIntMap m
   project = toLazyIntMap
@@ -49,7 +49,7 @@
 
 instance StrictContainer [] where
   newtype Strict [] a = StrictList { toLazyList :: [a] }
-    deriving (Show, Eq)
+    deriving (Eq, Show)
 
   force m = List.foldl' (flip seq) () m `seq` StrictList m
   project = toLazyList
@@ -68,7 +68,7 @@
 
 instance StrictContainer (Map k) where
   newtype Strict (Map k) v = StrictMap { toLazyMap :: Map k v }
-    deriving (Show)
+    deriving (Eq, Show)
 
   force m = Map.foldl' (flip seq) () m `seq` StrictMap m
   project = toLazyMap
@@ -121,7 +121,7 @@
 
 instance StrictContainer Trie where
   newtype Strict Trie a = StrictTrie { toLazyTrie :: Trie a }
-    deriving (Show)
+    deriving (Eq, Show)
 
   force m = Foldable.foldl (flip seq) () m `seq` StrictTrie m
   project = toLazyTrie
diff --git a/IdeSession/Types/Private.hs b/IdeSession/Types/Private.hs
--- a/IdeSession/Types/Private.hs
+++ b/IdeSession/Types/Private.hs
@@ -1,4 +1,5 @@
-{-# LANGUAGE TemplateHaskell, GeneralizedNewtypeDeriving, DeriveDataTypeable, DeriveGeneric #-}
+{-# LANGUAGE TemplateHaskell, GeneralizedNewtypeDeriving, DeriveDataTypeable, DeriveGeneric, RecordWildCards #-}
+
 -- | The private types
 module IdeSession.Types.Private (
     -- * Types without a public counterpart
diff --git a/IdeSession/Types/Progress.hs b/IdeSession/Types/Progress.hs
--- a/IdeSession/Types/Progress.hs
+++ b/IdeSession/Types/Progress.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DeriveGeneric, RecordWildCards #-}
 module IdeSession.Types.Progress (
     Progress(..)
   ) where
diff --git a/IdeSession/Types/Public.hs b/IdeSession/Types/Public.hs
--- a/IdeSession/Types/Public.hs
+++ b/IdeSession/Types/Public.hs
@@ -1,4 +1,5 @@
-{-# LANGUAGE TemplateHaskell, DeriveDataTypeable, DeriveGeneric #-}
+{-# LANGUAGE TemplateHaskell, DeriveDataTypeable, DeriveGeneric, NamedFieldPuns, RecordWildCards #-}
+
 -- | The public types
 module IdeSession.Types.Public (
     -- * Types
@@ -185,13 +186,13 @@
   }
   deriving (Show, Eq, Ord, Generic)
 
--- | Returned then the IDE asks "what's at this particular location?"
+-- | Returned when the IDE asks "what's at this particular location?"
 data SpanInfo =
     -- | Identifier
     SpanId IdInfo
     -- | Quasi-quote. The 'IdInfo' field gives the quasi-quoter
   | SpanQQ IdInfo
-  deriving (Generic)
+  deriving (Eq, Generic)
 
 -- | Buffer modes for running code
 --
diff --git a/IdeSession/Types/Translation.hs b/IdeSession/Types/Translation.hs
--- a/IdeSession/Types/Translation.hs
+++ b/IdeSession/Types/Translation.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeFamilies, ScopedTypeVariables, TypeSynonymInstances, FlexibleInstances, FlexibleContexts #-}
+{-# LANGUAGE TypeFamilies, ScopedTypeVariables, TypeSynonymInstances, FlexibleInstances, FlexibleContexts, RecordWildCards #-}
 -- | Translation from the private to the public types
 module IdeSession.Types.Translation (
     XShared
diff --git a/ide-backend-common.cabal b/ide-backend-common.cabal
--- a/ide-backend-common.cabal
+++ b/ide-backend-common.cabal
@@ -1,5 +1,5 @@
 name:                 ide-backend-common
-version:              0.9.1.2
+version:              0.9.1.3
 synopsis:             Shared library used be ide-backend and ide-backend-server
 description:          Should not be used by end users
 license:              MIT
@@ -10,7 +10,7 @@
 category:             Development
 build-type:           Simple
 cabal-version:        >=1.10
-extra-source-files:   README.md ChangeLog.md
+extra-source-files:   README.md
 
 library
   exposed-modules:    IdeSession.Util
@@ -38,14 +38,14 @@
                       IdeSession.Types.Translation
                       IdeSession.Types.Progress
 
-  build-depends:      base                 ==4.*,
+  build-depends:      base                 >= 4.5     && < 5,
                       filepath             >= 1.3     && < 1.5,
                       directory            >= 1.1     && < 1.3,
-                      containers           >= 0.4.1   && < 1,
+                      containers           >= 0.4.2   && < 1,
                       bytestring           >= 0.9.2   && < 1,
                       mtl                  >= 2.1     && < 2.3,
                       async                >= 2.0     && < 2.1,
-                      aeson                >= 0.6.2   && < 0.9,
+                      aeson                >= 0.6.2   && < 0.10,
                       unix                 >= 2.5     && < 2.8,
                       temporary            >= 1.1.2.4 && < 1.3,
                       bytestring-trie      >= 0.2     && < 0.3,
@@ -59,20 +59,31 @@
                       transformers         >= 0.3     && < 0.5,
                       attoparsec           >= 0.10    && < 0.14,
                       template-haskell,
-                      pretty-show
+                      pretty-show          >= 1.3     && < 1.7
 
+  -- GHC.Generics lived in `ghc-prim` for GHC 7.2 & GHC 7.4
+  if impl(ghc < 7.6)
+      build-depends:  ghc-prim == 0.2.*
+
   default-language:   Haskell2010
-  default-extensions: MonoLocalBinds
-                      BangPatterns
-                      RecordWildCards
+  other-extensions:   CPP
+                      DeriveDataTypeable
+                      DeriveFoldable
+                      DeriveFunctor
+                      DeriveGeneric
+                      DeriveTraversable
+                      FlexibleContexts
+                      FlexibleInstances
+                      GADTs
+                      GeneralizedNewtypeDeriving
+                      MultiParamTypeClasses
                       NamedFieldPuns
                       RankNTypes
-                      MultiParamTypeClasses
-                      ExistentialQuantification
-                      FlexibleContexts
-                      DeriveDataTypeable
-  other-extensions:   CPP
+                      RecordWildCards
+                      ScopedTypeVariables
+                      StandaloneDeriving
                       TemplateHaskell
-                      ScopedTypeVariables,
-                      GeneralizedNewtypeDeriving
+                      TypeFamilies
+                      TypeSynonymInstances
+
   ghc-options:        -Wall -fno-warn-unused-do-bind
