diff --git a/Changes.md b/Changes.md
--- a/Changes.md
+++ b/Changes.md
@@ -1,6 +1,15 @@
 Version history for `data-default`
 ==================================
 
+## 0.8.0.2 -- 2026-01-06
+
+- Make the code compatible with MicroHs (which basically means removing the
+  tuple instances of size 16+ as those don't exist in MicroHs). This does not
+  affect the GHC version of this module, which is unchanged.
+
+- Relax upper version bound on containers from `<0.8` to `<0.9` (technically
+  this change was already applied to version 0.8.0.1 on hackage).
+
 ## 0.8.0.1 -- 2025-03-16
 
 - Add a changelog file.
diff --git a/Data/Default/Internal.hs b/Data/Default/Internal.hs
--- a/Data/Default/Internal.hs
+++ b/Data/Default/Internal.hs
@@ -222,6 +222,8 @@
 instance (Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7, Default a8, Default a9, Default a10, Default a11, Default a12, Default a13, Default a14, Default a15) => Default (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) where
     def = (def, def, def, def, def, def, def, def, def, def, def, def, def, def, def)
 
+#ifdef __GLASGOW_HASKELL__
+
 instance (Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7, Default a8, Default a9, Default a10, Default a11, Default a12, Default a13, Default a14, Default a15, Default a16) => Default (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) where
     def = (def, def, def, def, def, def, def, def, def, def, def, def, def, def, def, def)
 
@@ -270,3 +272,4 @@
 instance (Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7, Default a8, Default a9, Default a10, Default a11, Default a12, Default a13, Default a14, Default a15, Default a16, Default a17, Default a18, Default a19, Default a20, Default a21, Default a22, Default a23, Default a24, Default a25, Default a26, Default a27, Default a28, Default a29, Default a30, Default a31) => Default (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31) where
     def = (def, def, def, def, def, def, def, def, def, def, def, def, def, def, def, def, def, def, def, def, def, def, def, def, def, def, def, def, def, def, def)
 
+#endif
diff --git a/data-default.cabal b/data-default.cabal
--- a/data-default.cabal
+++ b/data-default.cabal
@@ -1,6 +1,6 @@
 cabal-version:   3.0
 name:            data-default
-version:         0.8.0.1
+version:         0.8.0.2
 category:        Data
 synopsis:        A class for types with a default value
 description:
@@ -21,7 +21,7 @@
     location: https://codeberg.org/mauke/data-default
 
 library
-    build-depends:     base >=4.8 && <5, containers >=0.1 && <0.8
+    build-depends:     base >=4.8 && <5, containers >=0.1 && <0.9
     exposed-modules:   Data.Default, Data.Default.Internal
     default-language:  Haskell98
 
diff --git a/t/basics.hs b/t/basics.hs
--- a/t/basics.hs
+++ b/t/basics.hs
@@ -75,6 +75,7 @@
 -- diag s = liftIO $ do
 --     putStrLn $ "# " ++ s
 
+#ifdef __GLASGOW_HASKELL__
 data T0 a b
     = C0 a a
     | C1
@@ -82,7 +83,17 @@
     deriving (Eq, Show, Generic)
 
 instance (Default a) => Default (T0 a b)
+#endif
 
+#ifdef __MHS__
+-- MicroHs is missing these for some reason
+deriving instance (Eq a) => Eq (Last a)
+deriving instance (Show a) => Show (Last a)
+deriving instance (Eq a) => Eq (First a)
+deriving instance (Show a) => Show (First a)
+deriving instance (Eq a1, Eq a2, Eq a3, Eq a4, Eq a5, Eq a6, Eq a7) => Eq (a1, a2, a3, a4, a5, a6, a7)
+#endif
+
 main :: IO ()
 main = runTest $ do
     is def ()
@@ -158,4 +169,6 @@
     is def ((def, def, def) :: ((), Maybe ((), ()), [Ordering]))
     is def ((def, def, def, def) :: ((), Maybe ((), ()), [Ordering], Float))
     is def ((def, def, def, def, def, def, def) :: ((), (), (), (), (), (), ()))
+#ifdef __GLASGOW_HASKELL__
     is def (C0 0 0 :: T0 Int Char)
+#endif
