diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,7 @@
-### 0.5.3 [2018.01.20]
+### 0.5.4 [2019.01.21]
+* Expose `Internal` modules.
+
+### 0.5.3 [2019.01.20]
 * Fix a bug in which `deriveEnum`/`deriveIx` would generate ill-scoped code
   for certain poly-kinded data types.
 
diff --git a/deriving-compat.cabal b/deriving-compat.cabal
--- a/deriving-compat.cabal
+++ b/deriving-compat.cabal
@@ -1,5 +1,5 @@
 name:                deriving-compat
-version:             0.5.3
+version:             0.5.4
 synopsis:            Backports of GHC deriving extensions
 description:         Provides Template Haskell functions that mimic deriving
                      extensions that were introduced or modified in recent versions
@@ -95,32 +95,29 @@
 
 library
   exposed-modules:     Data.Deriving
+                       Data.Deriving.Internal
 
                        Data.Bounded.Deriving
+                       Data.Bounded.Deriving.Internal
                        Data.Deriving.Via
+                       Data.Deriving.Via.Internal
                        Data.Enum.Deriving
+                       Data.Enum.Deriving.Internal
                        Data.Eq.Deriving
+                       Data.Eq.Deriving.Internal
                        Data.Foldable.Deriving
+                       Data.Functor.Deriving.Internal
                        Data.Functor.Deriving
                        Data.Ix.Deriving
+                       Data.Ix.Deriving.Internal
                        Data.Ord.Deriving
+                       Data.Ord.Deriving.Internal
                        Data.Traversable.Deriving
                        Text.Read.Deriving
-                       Text.Show.Deriving
-
-  other-modules:       Data.Deriving.Internal
-
-                       Data.Bounded.Deriving.Internal
-                       Data.Deriving.Via.Internal
-                       Data.Enum.Deriving.Internal
-                       Data.Eq.Deriving.Internal
-                       Data.Functor.Deriving.Internal
-                       Data.Ix.Deriving.Internal
-                       Data.Ord.Deriving.Internal
                        Text.Read.Deriving.Internal
+                       Text.Show.Deriving
                        Text.Show.Deriving.Internal
-
-                       Paths_deriving_compat
+  other-modules:       Paths_deriving_compat
   build-depends:       containers          >= 0.1   && < 0.7
                      , ghc-prim
                      , th-abstraction      >= 0.2.9 && < 0.3
diff --git a/src/Data/Bounded/Deriving/Internal.hs b/src/Data/Bounded/Deriving/Internal.hs
--- a/src/Data/Bounded/Deriving/Internal.hs
+++ b/src/Data/Bounded/Deriving/Internal.hs
@@ -8,6 +8,9 @@
 Portability: Template Haskell
 
 Exports functions to mechanically derive 'Bounded' instances.
+
+Note: this is an internal module, and as such, the API presented here is not
+guaranteed to be stable, even between minor releases of this library.
 -}
 module Data.Bounded.Deriving.Internal (
       -- * 'Bounded'
diff --git a/src/Data/Deriving/Internal.hs b/src/Data/Deriving/Internal.hs
--- a/src/Data/Deriving/Internal.hs
+++ b/src/Data/Deriving/Internal.hs
@@ -19,6 +19,9 @@
 Portability: Template Haskell
 
 Template Haskell-related utilities.
+
+Note: this is an internal module, and as such, the API presented here is not
+guaranteed to be stable, even between minor releases of this library.
 -}
 module Data.Deriving.Internal where
 
diff --git a/src/Data/Deriving/Via/Internal.hs b/src/Data/Deriving/Via/Internal.hs
--- a/src/Data/Deriving/Via/Internal.hs
+++ b/src/Data/Deriving/Via/Internal.hs
@@ -13,6 +13,9 @@
 
 On older versions of @template-haskell@/GHC, this module does not export
 anything.
+
+Note: this is an internal module, and as such, the API presented here is not
+guaranteed to be stable, even between minor releases of this library.
 -}
 module Data.Deriving.Via.Internal where
 
diff --git a/src/Data/Enum/Deriving/Internal.hs b/src/Data/Enum/Deriving/Internal.hs
--- a/src/Data/Enum/Deriving/Internal.hs
+++ b/src/Data/Enum/Deriving/Internal.hs
@@ -6,6 +6,9 @@
 Portability: Template Haskell
 
 Exports functions to mechanically derive 'Enum' instances.
+
+Note: this is an internal module, and as such, the API presented here is not
+guaranteed to be stable, even between minor releases of this library.
 -}
 module Data.Enum.Deriving.Internal (
       -- * 'Enum'
diff --git a/src/Data/Eq/Deriving/Internal.hs b/src/Data/Eq/Deriving/Internal.hs
--- a/src/Data/Eq/Deriving/Internal.hs
+++ b/src/Data/Eq/Deriving/Internal.hs
@@ -9,6 +9,9 @@
 Portability: Template Haskell
 
 Exports functions to mechanically derive 'Eq', 'Eq1', and 'Eq2' instances.
+
+Note: this is an internal module, and as such, the API presented here is not
+guaranteed to be stable, even between minor releases of this library.
 -}
 module Data.Eq.Deriving.Internal (
       -- * 'Eq'
diff --git a/src/Data/Functor/Deriving/Internal.hs b/src/Data/Functor/Deriving/Internal.hs
--- a/src/Data/Functor/Deriving/Internal.hs
+++ b/src/Data/Functor/Deriving/Internal.hs
@@ -11,6 +11,9 @@
 
 For more info on how deriving @Functor@ works, see
 <https://ghc.haskell.org/trac/ghc/wiki/Commentary/Compiler/DeriveFunctor this GHC wiki page>.
+
+Note: this is an internal module, and as such, the API presented here is not
+guaranteed to be stable, even between minor releases of this library.
 -}
 module Data.Functor.Deriving.Internal (
       -- * 'Foldable'
diff --git a/src/Data/Ix/Deriving/Internal.hs b/src/Data/Ix/Deriving/Internal.hs
--- a/src/Data/Ix/Deriving/Internal.hs
+++ b/src/Data/Ix/Deriving/Internal.hs
@@ -6,6 +6,9 @@
 Portability: Template Haskell
 
 Exports functions to mechanically derive 'Ix' instances.
+
+Note: this is an internal module, and as such, the API presented here is not
+guaranteed to be stable, even between minor releases of this library.
 -}
 module Data.Ix.Deriving.Internal (
       -- * 'Ix'
diff --git a/src/Data/Ord/Deriving/Internal.hs b/src/Data/Ord/Deriving/Internal.hs
--- a/src/Data/Ord/Deriving/Internal.hs
+++ b/src/Data/Ord/Deriving/Internal.hs
@@ -9,6 +9,9 @@
 Portability: Template Haskell
 
 Exports functions to mechanically derive 'Ord', 'Ord1', and 'Ord2' instances.
+
+Note: this is an internal module, and as such, the API presented here is not
+guaranteed to be stable, even between minor releases of this library.
 -}
 module Data.Ord.Deriving.Internal (
       -- * 'Ord'
diff --git a/src/Text/Read/Deriving/Internal.hs b/src/Text/Read/Deriving/Internal.hs
--- a/src/Text/Read/Deriving/Internal.hs
+++ b/src/Text/Read/Deriving/Internal.hs
@@ -8,6 +8,9 @@
 Portability: Template Haskell
 
 Exports functions to mechanically derive 'Read', 'Read1', and 'Read2' instances.
+
+Note: this is an internal module, and as such, the API presented here is not
+guaranteed to be stable, even between minor releases of this library.
 -}
 module Text.Read.Deriving.Internal (
       -- * 'Read'
diff --git a/src/Text/Show/Deriving/Internal.hs b/src/Text/Show/Deriving/Internal.hs
--- a/src/Text/Show/Deriving/Internal.hs
+++ b/src/Text/Show/Deriving/Internal.hs
@@ -8,6 +8,9 @@
 Portability: Template Haskell
 
 Exports functions to mechanically derive 'Show', 'Show1', and 'Show2' instances.
+
+Note: this is an internal module, and as such, the API presented here is not
+guaranteed to be stable, even between minor releases of this library.
 -}
 module Text.Show.Deriving.Internal (
       -- * 'Show'
