diff --git a/process-extras.cabal b/process-extras.cabal
--- a/process-extras.cabal
+++ b/process-extras.cabal
@@ -1,5 +1,5 @@
 Name:               process-extras
-Version:            0.3.3.3
+Version:            0.3.3.4
 Synopsis:           Process extras
 Description:        Extra functionality for the Process library
                     <http://hackage.haskell.org/package/process>.
diff --git a/src/System/Process/ByteString.hs b/src/System/Process/ByteString.hs
--- a/src/System/Process/ByteString.hs
+++ b/src/System/Process/ByteString.hs
@@ -2,7 +2,9 @@
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 module System.Process.ByteString where
 
+#if __GLASGOW_HASKELL__ <= 709
 import Control.Applicative ((<$>))
+#endif
 import Control.Monad
 import Data.ByteString (ByteString)
 import Data.ListLike.IO (hGetContents)
diff --git a/src/System/Process/ByteString/Lazy.hs b/src/System/Process/ByteString/Lazy.hs
--- a/src/System/Process/ByteString/Lazy.hs
+++ b/src/System/Process/ByteString/Lazy.hs
@@ -2,7 +2,9 @@
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 module System.Process.ByteString.Lazy where
 
+#if __GLASGOW_HASKELL__ <= 709
 import Control.Applicative ((<$>))
+#endif
 import Control.DeepSeq (force)
 import qualified Control.Exception as C (evaluate)
 import Data.ByteString.Lazy (ByteString, toChunks, fromChunks)
diff --git a/src/System/Process/Common.hs b/src/System/Process/Common.hs
--- a/src/System/Process/Common.hs
+++ b/src/System/Process/Common.hs
@@ -18,10 +18,6 @@
     , readCreateProcessLazy
     ) where
 
-#if __GLASGOW_HASKELL__ <= 709
-import Control.Applicative (pure, (<$>), (<*>))
-import Data.Monoid (Monoid(mempty, mappend))
-#endif
 import Control.Concurrent
 import Control.DeepSeq (NFData)
 import Control.Exception as E (SomeException, onException, catch, mask, throw, try)
@@ -29,7 +25,6 @@
 import Data.ListLike (null)
 import Data.ListLike.IO (ListLikeIO, hGetContents, hPutStr)
 import Data.Monoid ((<>))
-import GHC.Generics
 import GHC.IO.Exception (IOErrorType(ResourceVanished), IOException(ioe_type))
 import Prelude hiding (null)
 import System.Exit (ExitCode(..))
@@ -38,7 +33,14 @@
 import System.Process (CreateProcess(std_err, std_in, std_out), StdStream(CreatePipe), ProcessHandle, createProcess, proc, waitForProcess, terminateProcess)
 import Utils (forkWait)
 
+#if __GLASGOW_HASKELL__ <= 709
+import Control.Applicative (pure, (<$>), (<*>))
+import Data.Monoid (Monoid(mempty, mappend))
+#else
+import GHC.Generics
+
 deriving instance Generic ExitCode
+#endif
 
 -- | This instance lets us use DeepSeq's force function on a stream of Chunks.
 instance NFData ExitCode
diff --git a/src/System/Process/ListLike.hs b/src/System/Process/ListLike.hs
--- a/src/System/Process/ListLike.hs
+++ b/src/System/Process/ListLike.hs
@@ -5,7 +5,7 @@
 -- you can have readCreateProcess output a list of Chunk, operate on
 -- it to do progress reporting, and finally convert it to the type
 -- that readProcessWithExitCode woud have returned.
-{-# LANGUAGE FlexibleInstances, FunctionalDependencies, MultiParamTypeClasses, UndecidableInstances #-}
+{-# LANGUAGE CPP, FlexibleInstances, FunctionalDependencies, MultiParamTypeClasses, UndecidableInstances #-}
 {-# OPTIONS_GHC -Wall -fno-warn-orphans #-}
 module System.Process.ListLike
     ( ProcessMaker(process)
@@ -24,7 +24,9 @@
 import Control.DeepSeq (force)
 import Control.Exception as C (evaluate, SomeException, throw)
 import Data.ListLike.IO (hGetContents)
+#if __GLASGOW_HASKELL__ <= 709
 import Data.Monoid (mempty, mconcat)
+#endif
 import Data.Text (unpack)
 import Data.Text.Lazy (Text, toChunks)
 import System.Exit (ExitCode)
