diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,13 @@
+0.8.10 [2025.12.07]
+-------------------
+* Deprecate `Data.Proxy.TH.{pr,pr1}`, as their functionality has been subsumed
+  by using `Proxy` with `TypeApplications` syntax. For instance, uses of
+  `[pr|T|]` should be migrated to `Proxy @T`. `Data.Proxy.TH` will be removed
+  in the next `tagged` release.
+* Allow disabling the `template-haskell` dependency by disabling a `cabal` flag
+  of the same name.
+* Support building with MicroHs.
+
 0.8.9 [2024.12.03]
 ------------------
 * Allow building with GHC 9.12.
diff --git a/src/Data/Proxy/TH.hs b/src/Data/Proxy/TH.hs
--- a/src/Data/Proxy/TH.hs
+++ b/src/Data/Proxy/TH.hs
@@ -37,6 +37,12 @@
 -- @Proxy :: Proxy [A,B,C]@.
 
 -- TODO: parse a richer syntax for the types involved here so we can include spaces, applications, etc.
+{-# DEPRECATED
+      pr
+      [ "'pr' will be removed in the next release. Use 'Proxy' with @TypeApplications@ instead. "
+      , "Instead of using @[pr|T|]@, use @Proxy \\@T@ instead. "
+      , "Instead of using @[pr|A,B,C|]@, use @Proxy \\@[A,B,C]@ instead. "
+      ] #-}
 pr :: QuasiQuoter
 pr = QuasiQuoter (mkProxy proxyExpQ) (mkProxy proxyPatQ) (mkProxy proxyTypeQ) undefined where
   mkProxy :: (TypeQ -> r) -> String -> r
@@ -56,6 +62,11 @@
 -- of types.
 
 -- TODO: parse a richer syntax for the types involved here so we can include spaces, applications, etc.
+{-# DEPRECATED
+      pr1
+      [ "'pr1' will be removed in the next release. Use 'Proxy' with @TypeApplications@ instead. "
+      , "Instead of using @[pr1|T|]@, use @Proxy \\@'[T]@ instead. "
+      ] #-}
 pr1 :: QuasiQuoter
 pr1 = QuasiQuoter (mkProxy proxyExpQ) (mkProxy proxyPatQ) (mkProxy proxyTypeQ) undefined where
   sing x = AppT (AppT PromotedConsT x) PromotedNilT
diff --git a/src/Data/Tagged.hs b/src/Data/Tagged.hs
--- a/src/Data/Tagged.hs
+++ b/src/Data/Tagged.hs
@@ -42,13 +42,9 @@
 #ifdef MIN_VERSION_deepseq
 import Control.DeepSeq (NFData(..))
 #endif
-#ifdef MIN_VERSION_transformers
 import Data.Functor.Classes ( Eq1(..), Ord1(..), Read1(..), Show1(..)
-# if !(MIN_VERSION_transformers(0,4,0)) || MIN_VERSION_transformers(0,5,0)
                             , Eq2(..), Ord2(..), Read2(..), Show2(..)
-# endif
                             )
-#endif
 import Control.Monad (liftM)
 import Data.Bifunctor
 #if MIN_VERSION_base(4,10,0)
@@ -65,9 +61,14 @@
 import Data.Ix (Ix(..))
 import Data.Semigroup (Semigroup(..))
 import Data.String (IsString(..))
+#ifdef __MHS__
+import Data.Traversable (Traversable(..))
+#endif
 import Foreign.Ptr (castPtr)
 import Foreign.Storable (Storable(..))
+#ifdef __GLASGOW_HASKELL__
 import GHC.Generics (Generic, Generic1)
+#endif
 
 -- | A @'Tagged' s b@ value is a value @b@ with an attached phantom type @s@.
 -- This can be used in place of the more traditional but less safe idiom of
@@ -80,7 +81,11 @@
 -- 'Tagged' has kind @k -> * -> *@ if the compiler supports @PolyKinds@, therefore
 -- there is an extra @k@ showing in the instance haddocks that may cause confusion.
 newtype Tagged s b = Tagged { unTagged :: b }
-  deriving (Eq, Ord, Ix, Bounded, Generic, Generic1)
+  deriving ( Eq, Ord, Ix, Bounded
+#ifdef __GLASGOW_HASKELL__
+           , Generic, Generic1
+#endif
+           )
 
 #ifdef __GLASGOW_HASKELL__
 instance (Data s, Data b) => Data (Tagged s b) where
@@ -154,7 +159,6 @@
     rnf (Tagged b) = rnf b
 #endif
 
-#ifdef MIN_VERSION_transformers
 instance Eq1 (Tagged s) where
     liftEq eq (Tagged a) (Tagged b) = eq a b
 
@@ -184,7 +188,6 @@
     liftShowsPrec2 _ _ sp _ n (Tagged b) = showParen (n > 10) $
         showString "Tagged " .
         sp 11 b
-#endif
 
 instance Applicative (Tagged s) where
     pure = Tagged
diff --git a/tagged.cabal b/tagged.cabal
--- a/tagged.cabal
+++ b/tagged.cabal
@@ -1,5 +1,5 @@
 name:           tagged
-version:        0.8.9
+version:        0.8.10
 license:        BSD3
 license-file:   LICENSE
 author:         Edward A. Kmett
@@ -41,11 +41,11 @@
   default: True
   manual: True
 
-flag transformers
+flag template-haskell
   description:
-    You can disable the use of the `transformers` and `transformers-compat` packages using `-f-transformers`.
+    You can disable the use of the `template-haskell` package using `-f-template-haskell`.
     .
-    Disable this is an unsupported configuration, but it may be useful for accelerating builds in sandboxes for expert users.
+    Disabling this is an unsupported configuration, but it may be useful for accelerating builds in sandboxes for expert users.
   default: True
   manual: True
 
@@ -53,12 +53,10 @@
   default-language: Haskell98
   other-extensions: CPP
   build-depends:
-    base >= 4.9 && < 5,
-    template-haskell >= 2.11 && < 2.24
+    base >= 4.9 && < 5
   ghc-options: -Wall
   hs-source-dirs: src
   exposed-modules:
-    Data.Proxy.TH
     Data.Tagged
 
   if impl(ghc >= 9.0)
@@ -69,5 +67,7 @@
   if flag(deepseq)
     build-depends: deepseq >= 1.1 && < 1.6
 
-  if flag(transformers)
-    build-depends: transformers >= 0.4.2.0 && < 0.7
+  if flag(template-haskell) && impl(ghc)
+    build-depends: template-haskell >= 2.11 && < 2.24
+    exposed-modules:
+      Data.Proxy.TH
