diff --git a/CHANGES.md b/CHANGES.md
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,10 @@
+1.8.2.1
+=======
+
+* [#293](https://github.com/serokell/universum/pull/293)
+  * Add explicit kind signatures for custom operators.
+  * Bump some dependency constraints to support GHC-9.8.
+
 1.8.2
 =====
 
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -3,8 +3,8 @@
 
 [![GitHub CI](https://github.com/serokell/universum/workflows/CI/badge.svg)](https://github.com/serokell/universum/actions)
 [![Hackage](https://img.shields.io/hackage/v/universum.svg)](https://hackage.haskell.org/package/universum)
-<!-- TODO [#288]: enable these once -->
-<!-- [![Stackage LTS](http://stackage.org/package/universum/badge/lts)](http://stackage.org/lts/package/universum) -->
+[![Stackage LTS](http://stackage.org/package/universum/badge/lts)](http://stackage.org/lts/package/universum)
+<!-- TODO [#288]: re-enable once the package is back to nightly -->
 <!-- [![Stackage Nightly](http://stackage.org/package/universum/badge/nightly)](http://stackage.org/nightly/package/universum) -->
 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
 
diff --git a/src/Universum/Debug.hs b/src/Universum/Debug.hs
--- a/src/Universum/Debug.hs
+++ b/src/Universum/Debug.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE CPP                #-}
+{-# LANGUAGE DataKinds          #-}
 {-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE DeriveGeneric      #-}
 {-# LANGUAGE DerivingStrategies #-}
@@ -8,7 +9,6 @@
 {-# LANGUAGE PolyKinds          #-}
 {-# LANGUAGE RankNTypes         #-}
 {-# LANGUAGE Trustworthy        #-}
-{-# LANGUAGE TypeInType         #-}
 
 -- | Functions for debugging. If you left these functions in your code
 -- then warning is generated to remind you about left usages. Also, some
diff --git a/src/Universum/String/Conversion.hs b/src/Universum/String/Conversion.hs
--- a/src/Universum/String/Conversion.hs
+++ b/src/Universum/String/Conversion.hs
@@ -177,7 +177,7 @@
 * You may optionally check whether any changes to `pack` and `unpack` functions
 and their `INLINE`/`NOINLINE` annotations took place.
 The current rewrite rules match with what happens in `text` package
-at the e5644b663c32c01a1de7299a5e711216755e01bc commit, and next time
+at the c826a6cb3d29242ce3632b490670ae7997689eaa commit, and next time
 you can just check `git diff <that commit>..HEAD`.
 
 If these points hold, it should be safe to raise the upper bound on `text` version.
diff --git a/src/Universum/TypeOps.hs b/src/Universum/TypeOps.hs
--- a/src/Universum/TypeOps.hs
+++ b/src/Universum/TypeOps.hs
@@ -1,12 +1,13 @@
-{-# LANGUAGE ConstraintKinds    #-}
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE ExplicitNamespaces #-}
-{-# LANGUAGE KindSignatures     #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE PolyKinds          #-}
-{-# LANGUAGE Safe               #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
+{-# LANGUAGE ConstraintKinds          #-}
+{-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE ExplicitNamespaces       #-}
+{-# LANGUAGE KindSignatures           #-}
+{-# LANGUAGE NoImplicitPrelude        #-}
+{-# LANGUAGE PolyKinds                #-}
+{-# LANGUAGE Safe                     #-}
+{-# LANGUAGE TypeFamilies             #-}
+{-# LANGUAGE StandaloneKindSignatures #-}
+{-# LANGUAGE TypeOperators            #-}
 
 -- | Type operators for writing convenient type signatures.
 
@@ -25,6 +26,7 @@
 -- =
 -- f :: Either String (Maybe Int)
 -- @
+type ($) :: (k2 -> k1) -> k2 -> k1
 type f $ a = f a
 infixr 2 $
 
@@ -66,4 +68,5 @@
 -- =
 -- a :: (Show a, Read a) => a -> a
 -- @
+type With :: [k -> Constraint] -> k -> Constraint
 type With a b = a <+> b
diff --git a/test/Test/Universum/StringProps.hs b/test/Test/Universum/StringProps.hs
--- a/test/Test/Universum/StringProps.hs
+++ b/test/Test/Universum/StringProps.hs
@@ -1,3 +1,8 @@
+-- Some tests in this module have a caveat: they depend on compiler
+-- optimizations and will likely fail if compiled with -O0.
+-- That's because they depend on rewrite rules (and test these rules),
+-- and these rules are usually not triggered without certain optimizations.
+
 module Test.Universum.StringProps
   ( hprop_StringToTextAndBack
   , hprop_StringToTextAndBackSurrogate
diff --git a/universum.cabal b/universum.cabal
--- a/universum.cabal
+++ b/universum.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.2
 name:                universum
-version:             1.8.2
+version:             1.8.2.1
 synopsis:            Custom prelude used in Serokell
 description:         See README.md file for more details.
 homepage:            https://github.com/serokell/universum
@@ -13,11 +13,12 @@
 stability:           stable
 build-type:          Simple
 bug-reports:         https://github.com/serokell/universum/issues
-tested-with:         GHC == 8.8.4
-                   , GHC == 8.10.7
+tested-with:         GHC == 8.10.7
                    , GHC == 9.0.2
                    , GHC == 9.2.8
                    , GHC == 9.4.5
+                   , GHC == 9.6.3
+                   , GHC == 9.8.1
 extra-doc-files:     CHANGES.md
                    , CONTRIBUTING.md
                    , README.md
@@ -40,8 +41,7 @@
                        -Wno-missing-local-signatures
                        -Wno-monomorphism-restriction
                        -Wno-implicit-prelude
-  if impl(ghc >= 8.10.1)
-    ghc-options:       -Wno-prepositive-qualified-module
+                       -Wno-prepositive-qualified-module
                        -Wno-inferred-safe-imports
   if impl(ghc >= 9.2.0)
     ghc-options:         -Wno-missing-kind-signatures
@@ -107,7 +107,7 @@
                      , stm
                      -- Make sure that "toString-toText-rewritting" note
                      -- is still valid when bumping this constraint.
-                     , text >= 1.0.0.0 && <= 2.0.2
+                     , text >= 1.0.0.0 && <= 2.1.1
                      , transformers
                      , unordered-containers
                      , utf8-string
@@ -140,9 +140,7 @@
   build-tool-depends:
       tasty-discover:tasty-discover
 
-  if impl(ghc >= 8.10.1)
-    ghc-options:         -Wno-missing-safe-haskell-mode
-
+  ghc-options:         -Wno-missing-safe-haskell-mode
   ghc-options:         -threaded
 
 test-suite universum-doctest
@@ -157,15 +155,13 @@
   build-depends:       doctest
                      , Glob
 
-  if impl(ghc >= 8.10.1)
-    ghc-options:         -Wno-missing-safe-haskell-mode
+  ghc-options:         -Wno-missing-safe-haskell-mode
+  ghc-options:         -threaded
   -- https://github.com/sol/doctest/issues/327
   -- TODO: re-enable when the issue is resolved
   if impl(ghc >= 9.0.0)
     buildable: False
 
-  ghc-options:         -threaded
-
 benchmark universum-benchmark
   import:              common-options
   type:                exitcode-stdio-1.0
@@ -179,8 +175,9 @@
                      , text
                      , unordered-containers
 
-  if impl(ghc >= 8.10.1)
-    ghc-options:         -Wno-missing-safe-haskell-mode
+  ghc-options:         -Wno-missing-safe-haskell-mode
+  if impl(ghc >= 9.8.0)
+    ghc-options:         -Wno-x-partial
 
   default-extensions:  NoImplicitPrelude
                        ScopedTypeVariables
