diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,10 @@
+# 1.0.2
+
+- Explicitly mark `Data.Some` as `Safe`.
+  It was previously inferred, yet it was Safe too,
+  as it only re-exports other explicitly marked modules.
+- Allow `base-4.15`, GHC-9.0 compatibility
+
 # 1.0.1
 
 - Add 'withSomeM' combinator.
diff --git a/some.cabal b/some.cabal
--- a/some.cabal
+++ b/some.cabal
@@ -1,5 +1,5 @@
 name:               some
-version:            1.0.1
+version:            1.0.2
 stability:          provisional
 cabal-version:      >=1.10
 build-type:         Simple
@@ -35,7 +35,8 @@
    || ==8.2.2
    || ==8.4.4
    || ==8.6.5
-   || ==8.8.1
+   || ==8.8.4
+   || ==8.10.3
 
 extra-source-files: ChangeLog.md
 
@@ -69,7 +70,7 @@
 
   other-modules:    Data.GADT.Internal
   build-depends:
-      base     >=4.3     && <4.14
+      base     >=4.3     && <4.16
     , deepseq  >=1.3.0.0 && <1.5
 
   if !impl(ghc >=7.8)
@@ -80,6 +81,11 @@
         semigroups           >=0.18.5 && <0.20
       , transformers         >=0.3    && <0.6
       , transformers-compat  >=0.6    && <0.7
+
+  if impl(ghc >= 9.0)
+    -- these flags may abort compilation with GHC-8.10
+    -- https://gitlab.haskell.org/ghc/ghc/-/merge_requests/3295
+    ghc-options: -Winferred-safe-imports -Wmissing-safe-haskell-mode
 
 test-suite hkd-example
   default-language: Haskell2010
diff --git a/src/Data/GADT/DeepSeq.hs b/src/Data/GADT/DeepSeq.hs
--- a/src/Data/GADT/DeepSeq.hs
+++ b/src/Data/GADT/DeepSeq.hs
@@ -1,8 +1,8 @@
-{-# LANGUAGE CPP #-}
+{-# LANGUAGE CPP         #-}
 #if __GLASGOW_HASKELL__ >= 704
-{-# LANGUAGE Safe         #-}
+{-# LANGUAGE Safe        #-}
 #elif __GLASGOW_HASKELL__ >= 702
-{-# LANGUAGE Trustworthy  #-}
+{-# LANGUAGE Trustworthy #-}
 #endif
 module Data.GADT.DeepSeq (
     GNFData (..),
diff --git a/src/Data/GADT/Internal.hs b/src/Data/GADT/Internal.hs
--- a/src/Data/GADT/Internal.hs
+++ b/src/Data/GADT/Internal.hs
@@ -14,7 +14,7 @@
 #else
 {-# LANGUAGE Trustworthy         #-}
 #endif
-#undef GH
+#undef GHC
 #endif
 module Data.GADT.Internal where
 
@@ -82,7 +82,7 @@
 type GReadS t = String -> [(Some t, String)]
 
 getGReadResult :: Some tag -> (forall a. tag a -> b) -> b
-getGReadResult = withSome
+getGReadResult t k = withSome t k
 
 mkGReadResult :: tag a -> Some tag
 mkGReadResult = mkSome
@@ -154,7 +154,7 @@
     -- > extractMany :: GEq tag => tag a -> [DSum tag] -> [a]
     -- > extractMany t1 things = [ x | (t2 :=> x) <- things, Refl <- maybeToList (geq t1 t2)]
     --
-    -- (Making use of the 'DSum' type from "Data.Dependent.Sum" in both examples)
+    -- (Making use of the 'DSum' type from <https://hackage.haskell.org/package/dependent-sum/docs/Data-Dependent-Sum.html Data.Dependent.Sum> in both examples)
     geq :: f a -> f b -> Maybe (a :~: b)
 
 -- |If 'f' has a 'GEq' instance, this function makes a suitable default
diff --git a/src/Data/GADT/Show.hs b/src/Data/GADT/Show.hs
--- a/src/Data/GADT/Show.hs
+++ b/src/Data/GADT/Show.hs
@@ -1,8 +1,8 @@
 {-# LANGUAGE CPP         #-}
 #if __GLASGOW_HASKELL__ >= 704
-{-# LANGUAGE Safe         #-}
+{-# LANGUAGE Safe        #-}
 #elif __GLASGOW_HASKELL__ >= 702
-{-# LANGUAGE Trustworthy  #-}
+{-# LANGUAGE Trustworthy #-}
 #endif
 module Data.GADT.Show (
     -- * Showing
diff --git a/src/Data/Some.hs b/src/Data/Some.hs
--- a/src/Data/Some.hs
+++ b/src/Data/Some.hs
@@ -1,4 +1,9 @@
-{-# LANGUAGE CPP #-}
+{-# LANGUAGE CPP         #-}
+#if __GLASGOW_HASKELL__ >= 704
+{-# LANGUAGE Safe        #-}
+#elif __GLASGOW_HASKELL__ >= 702
+{-# LANGUAGE Trustworthy #-}
+#endif
 -- | An existential type.
 --
 -- The constructor is exported only on GHC-8 and later.
