diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,2 +1,5 @@
+## generic-lens-core-2.1.0.0 (2021-01-25)
+- Expose Data.Generics.Product.Internal.Subtype (#127, Tom Harding)
+
 ## generic-lens-core-2.0.0.0 (2020-02-11)
 - Initial release
diff --git a/generic-lens-core.cabal b/generic-lens-core.cabal
--- a/generic-lens-core.cabal
+++ b/generic-lens-core.cabal
@@ -1,5 +1,5 @@
 name:                 generic-lens-core
-version:              2.0.0.0
+version:              2.1.0.0
 synopsis:             Generically derive traversals, lenses and prisms.
 description:          This library uses GHC.Generics to derive efficient optics (traversals, lenses and prisms) for algebraic data types in a type-directed way, with a focus on good type inference and error messages when possible.
                       .
diff --git a/src/Data/GenericLens/Internal.hs b/src/Data/GenericLens/Internal.hs
--- a/src/Data/GenericLens/Internal.hs
+++ b/src/Data/GenericLens/Internal.hs
@@ -26,6 +26,8 @@
   , module Data.Generics.Internal.Profunctor.Iso
   , module Data.Generics.Internal.Profunctor.Lens
   , module Data.Generics.Internal.Profunctor.Prism
+
+  , module Data.Generics.Product.Internal.Subtype
   ) where
 
 import Data.Generics.Internal.Families
@@ -40,3 +42,5 @@
 import Data.Generics.Internal.Profunctor.Iso
 import Data.Generics.Internal.Profunctor.Lens
 import Data.Generics.Internal.Profunctor.Prism
+
+import Data.Generics.Product.Internal.Subtype
diff --git a/src/Data/Generics/Product/Internal/Positions.hs b/src/Data/Generics/Product/Internal/Positions.hs
--- a/src/Data/Generics/Product/Internal/Positions.hs
+++ b/src/Data/Generics/Product/Internal/Positions.hs
@@ -40,7 +40,6 @@
   , derived'
   ) where
 
-import Data.Generics.Internal.Families.Has (Pos)
 import Data.Kind      (Type, Constraint)
 import Data.Type.Bool (If, Not, type (&&))
 import GHC.Generics
diff --git a/src/Data/Generics/Product/Internal/Subtype.hs b/src/Data/Generics/Product/Internal/Subtype.hs
--- a/src/Data/Generics/Product/Internal/Subtype.hs
+++ b/src/Data/Generics/Product/Internal/Subtype.hs
@@ -29,8 +29,8 @@
 
 module Data.Generics.Product.Internal.Subtype
   ( Context
-  , gsmash
-  , gupcast
+  , GSmash (..)
+  , GUpcast (..)
   ) where
 
 import Data.Generics.Internal.Families
@@ -41,7 +41,6 @@
 import GHC.TypeLits (Symbol)
 import Data.Generics.Internal.Profunctor.Lens (view)
 
-import GHC.Generics (Generic (Rep))
 import GHC.TypeLits (TypeError, ErrorMessage (..))
 import Data.Kind (Constraint)
 import Data.Generics.Internal.Errors
diff --git a/src/Data/Generics/Product/Internal/Types.hs b/src/Data/Generics/Product/Internal/Types.hs
--- a/src/Data/Generics/Product/Internal/Types.hs
+++ b/src/Data/Generics/Product/Internal/Types.hs
@@ -18,7 +18,7 @@
 
 import Data.Kind
 import Data.Int (Int8, Int16, Int32, Int64)
-import Data.Word (Word, Word8, Word16, Word32, Word64)
+import Data.Word (Word8, Word16, Word32, Word64)
 import qualified Data.Text as T
 
 import GHC.Generics
