diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,9 @@
 # Revision history for generic-storable-plugin
 
+## 0.2.1.0  -- 2018-03-20
+
+* Bump to 8.4
+
 ## 0.2.0.0  -- 2017-11-04
 
 * Support for GHC 8.2.*. 
diff --git a/derive-storable-plugin.cabal b/derive-storable-plugin.cabal
--- a/derive-storable-plugin.cabal
+++ b/derive-storable-plugin.cabal
@@ -2,7 +2,7 @@
 -- further documentation, see http://haskell.org/cabal/users-guide/
 
 name:                derive-storable-plugin
-version:             0.2.0.0
+version:             0.2.1.0
 synopsis:            GHC core plugin supporting the derive-storable package.
 description:         The package helps derive-storable package in forcing compile time evaluation of
                      sizes, alignments and offsets.
@@ -16,7 +16,7 @@
 build-type:          Simple
 extra-source-files:  ChangeLog.md README.md
 cabal-version:       >=1.10
-tested-with:         GHC==8.0.1, GHC==8.0.2, GHC==8.2.1
+tested-with:         GHC==8.0.1, GHC==8.0.2, GHC==8.2.1, GHC==8.4.1
 
 library
   exposed-modules:       Foreign.Storable.Generic.Plugin
@@ -29,7 +29,7 @@
                        , Foreign.Storable.Generic.Plugin.Internal.Types
   -- other-modules:       
   other-extensions:    DeriveGeneric, DeriveAnyClass, PatternGuards
-  build-depends:       base >=4.9 && <4.11, ghc >= 8.0 && <8.3, ghci >= 8.0 && <8.3, derive-storable == 0.1.1.*
+  build-depends:       base >=4.9 && <4.12, ghc >= 8.0 && <8.5, ghci >= 8.0 && <8.5, derive-storable >= 0.1.1 && < 0.2
   hs-source-dirs:      src
   default-language:    Haskell2010
 
@@ -39,7 +39,7 @@
   default-language:    Haskell2010
   other-modules:       TestCases, TestCasesOptimized
   Main-is:             Main.hs
-  build-depends:       base >= 4.9 && < 4.11, deepseq, criterion >= 1.1.0
+  build-depends:       base >= 4.9 && < 4.12, deepseq, criterion >= 1.1.0
                     ,  derive-storable, derive-storable-plugin
 test-suite ids-concrete
   type:                exitcode-stdio-1.0
@@ -47,7 +47,7 @@
   default-language:    Haskell2010
   other-modules:       Types, Instances
   Main-is:             Main.hs
-  build-depends:       base >= 4.9 && < 4.11, ghc >= 8.0 && <8.3, ghci >= 8.0 && <8.3, ghc-paths
+  build-depends:       base >= 4.9 && < 4.12, ghc >= 8.0 && <8.5, ghci >= 8.0 && <8.5, ghc-paths
                     ,  derive-storable, derive-storable-plugin, hspec >= 2.4, QuickCheck >= 2.10
 
 test-suite ids-handwritten
@@ -56,7 +56,7 @@
   default-language:    Haskell2010
   other-modules:       Types, Instances
   Main-is:             Main.hs
-  build-depends:       base >= 4.9 && < 4.11, ghc >= 8.0 && <8.3, ghci >= 8.0 && <8.3, ghc-paths
+  build-depends:       base >= 4.9 && < 4.12, ghc >= 8.0 && <8.5, ghci >= 8.0 && <8.5, ghc-paths
                     ,  derive-storable, derive-storable-plugin, hspec >= 2.4, QuickCheck >= 2.10
 
 test-suite ids-newtype
@@ -65,7 +65,7 @@
   default-language:    Haskell2010
   other-modules:       Types, Instances
   Main-is:             Main.hs
-  build-depends:       base >= 4.9 && < 4.11, ghc >= 8.0 && <8.3, ghci >= 8.0 && <8.3, ghc-paths
+  build-depends:       base >= 4.9 && < 4.12, ghc >= 8.0 && <8.5, ghci >= 8.0 && <8.5, ghc-paths
                     ,  derive-storable, derive-storable-plugin, hspec >= 2.4, QuickCheck >= 2.10
 
 test-suite ids-parametrised-spec
@@ -74,7 +74,7 @@
   default-language:    Haskell2010
   other-modules:       Types, Instances, Usage
   Main-is:             Main.hs
-  build-depends:       base >= 4.9 && < 4.11, ghc >= 8.0 && <8.3, ghci >= 8.0 && <8.3, ghc-paths
+  build-depends:       base >= 4.9 && < 4.12, ghc >= 8.0 && <8.5, ghci >= 8.0 && <8.5, ghc-paths
                     ,  derive-storable, derive-storable-plugin, hspec >= 2.4, QuickCheck >= 2.10
 
 test-suite ids-typesynonym
@@ -83,5 +83,5 @@
   default-language:    Haskell2010
   other-modules:       Types, Instances
   Main-is:             Main.hs
-  build-depends:       base >= 4.9 && < 4.11, ghc >= 8.0 && <8.3, ghci >= 8.0 && <8.3, ghc-paths
+  build-depends:       base >= 4.9 && < 4.12, ghc >= 8.0 && <8.5, ghci >= 8.0 && <8.5, ghc-paths
                     ,  derive-storable, derive-storable-plugin, hspec >= 2.4, QuickCheck >= 2.10
diff --git a/src/Foreign/Storable/Generic/Plugin/Internal.hs b/src/Foreign/Storable/Generic/Plugin/Internal.hs
--- a/src/Foreign/Storable/Generic/Plugin/Internal.hs
+++ b/src/Foreign/Storable/Generic/Plugin/Internal.hs
@@ -16,6 +16,8 @@
 where
 
 -- Management of Core.
+
+import Prelude hiding ((<>))
 import CoreSyn (Bind(..),Expr(..), CoreExpr, CoreBind, CoreProgram, Alt)
 import Literal (Literal(..))
 import Id  (isLocalId, isGlobalId,Id, modifyInlinePragma, setInlinePragma, idInfo)
@@ -30,7 +32,7 @@
 import HscMain (hscCompileCoreExpr)
 import HscTypes (HscEnv,ModGuts(..))
 import CoreMonad 
-    (CoreM, SimplifierMode(..), CoreToDo(..), 
+    (CoreM, CoreToDo(..), 
      getHscEnv, getDynFlags, putMsg, putMsgS)
 import BasicTypes (CompilerPhase(..))
 -- Haskell types 
diff --git a/src/Foreign/Storable/Generic/Plugin/Internal/Compile.hs b/src/Foreign/Storable/Generic/Plugin/Internal/Compile.hs
--- a/src/Foreign/Storable/Generic/Plugin/Internal/Compile.hs
+++ b/src/Foreign/Storable/Generic/Plugin/Internal/Compile.hs
@@ -39,6 +39,7 @@
 where
 
 -- Management of Core.
+import Prelude hiding ((<>))
 import CoreSyn (Bind(..),Expr(..), CoreExpr, CoreBind, CoreProgram, Alt, AltCon(..), isId, Unfolding(..))
 import Literal (Literal(..))
 import Id  (isLocalId, isGlobalId,setIdInfo,Id)
@@ -52,7 +53,7 @@
 -- Compilation pipeline stuff
 import HscMain (hscCompileCoreExpr)
 import HscTypes (HscEnv,ModGuts(..))
-import CoreMonad (CoreM, SimplifierMode(..),CoreToDo(..), getHscEnv, getDynFlags)
+import CoreMonad (CoreM,CoreToDo(..), getHscEnv, getDynFlags)
 import CoreLint (lintExpr)
 import BasicTypes (CompilerPhase(..))
 -- Haskell types 
diff --git a/src/Foreign/Storable/Generic/Plugin/Internal/GroupTypes.hs b/src/Foreign/Storable/Generic/Plugin/Internal/GroupTypes.hs
--- a/src/Foreign/Storable/Generic/Plugin/Internal/GroupTypes.hs
+++ b/src/Foreign/Storable/Generic/Plugin/Internal/GroupTypes.hs
@@ -32,7 +32,7 @@
 -- Compilation pipeline stuff
 import HscMain (hscCompileCoreExpr)
 import HscTypes (HscEnv,ModGuts(..))
-import CoreMonad (CoreM, SimplifierMode(..),CoreToDo(..), getHscEnv)
+import CoreMonad (CoreM,CoreToDo(..), getHscEnv)
 import BasicTypes (CompilerPhase(..))
 -- Haskell types 
 import Type (isAlgType, splitTyConApp_maybe)
diff --git a/src/Foreign/Storable/Generic/Plugin/Internal/Helpers.hs b/src/Foreign/Storable/Generic/Plugin/Internal/Helpers.hs
--- a/src/Foreign/Storable/Generic/Plugin/Internal/Helpers.hs
+++ b/src/Foreign/Storable/Generic/Plugin/Internal/Helpers.hs
@@ -28,7 +28,7 @@
 -- Compilation pipeline stuff
 import HscMain (hscCompileCoreExpr)
 import HscTypes (HscEnv,ModGuts(..))
-import CoreMonad (CoreM, SimplifierMode(..),CoreToDo(..), getHscEnv)
+import CoreMonad (CoreM,CoreToDo(..), getHscEnv)
 import BasicTypes (CompilerPhase(..))
 -- Haskell types 
 import Type (isAlgType, splitTyConApp_maybe)
diff --git a/src/Foreign/Storable/Generic/Plugin/Internal/Predicates.hs b/src/Foreign/Storable/Generic/Plugin/Internal/Predicates.hs
--- a/src/Foreign/Storable/Generic/Plugin/Internal/Predicates.hs
+++ b/src/Foreign/Storable/Generic/Plugin/Internal/Predicates.hs
@@ -46,7 +46,7 @@
 -- Compilation pipeline stuff
 import HscMain (hscCompileCoreExpr)
 import HscTypes (HscEnv,ModGuts(..))
-import CoreMonad (CoreM, SimplifierMode(..),CoreToDo(..), getHscEnv)
+import CoreMonad (CoreM, CoreToDo(..), getHscEnv)
 import BasicTypes (CompilerPhase(..))
 -- Types 
 import Type (isAlgType, splitTyConApp_maybe)
diff --git a/src/Foreign/Storable/Generic/Plugin/Internal/Types.hs b/src/Foreign/Storable/Generic/Plugin/Internal/Types.hs
--- a/src/Foreign/Storable/Generic/Plugin/Internal/Types.hs
+++ b/src/Foreign/Storable/Generic/Plugin/Internal/Types.hs
@@ -53,7 +53,7 @@
 -- Compilation pipeline stuff
 import HscMain (hscCompileCoreExpr)
 import HscTypes (HscEnv,ModGuts(..))
-import CoreMonad (CoreM, SimplifierMode(..),CoreToDo(..), getHscEnv)
+import CoreMonad (CoreM, CoreToDo(..), getHscEnv)
 import BasicTypes (CompilerPhase(..))
 -- Haskell types 
 import Type (isAlgType, splitTyConApp_maybe)
