diff --git a/lifted-stm.cabal b/lifted-stm.cabal
--- a/lifted-stm.cabal
+++ b/lifted-stm.cabal
@@ -1,5 +1,5 @@
 Name: lifted-stm
-Version: 0.1
+Version: 0.2
 Category: Concurrency
 Stability: experimental
 Synopsis: STM operations lifted through monad transformer stacks
@@ -19,7 +19,7 @@
 Extra-Source-Files:
   README.md
 
-Tested-With: GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.1
+Tested-With: GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.4, GHC==8.6.1
 
 Cabal-Version: >= 1.10.0
 Build-Type: Simple
@@ -32,7 +32,7 @@
   Default-Language: Haskell2010
   Build-Depends: base >= 4 && < 5
                , array >= 0.3
-               , stm >= 2.4.5
+               , stm >= 2.5
                , transformers >= 0.2
                , transformers-compat >= 0.6.1
                , transformers-base >= 0.4.5.2
diff --git a/src/Control/Concurrent/STM/TBQueue/Lifted.hs b/src/Control/Concurrent/STM/TBQueue/Lifted.hs
--- a/src/Control/Concurrent/STM/TBQueue/Lifted.hs
+++ b/src/Control/Concurrent/STM/TBQueue/Lifted.hs
@@ -17,18 +17,19 @@
   , isFullTBQueue
   ) where
 
+import Numeric.Natural (Natural)
 import Control.Monad.Base (MonadBase(..))
 import Control.Monad.STM (STM)
 import Control.Concurrent.STM.TBQueue (TBQueue)
 import qualified Control.Concurrent.STM.TBQueue as STM
 
 -- | A lifted version of 'STM.newTBQueue'.
-newTBQueue ∷ MonadBase STM μ ⇒ Int → μ (TBQueue α)
+newTBQueue ∷ MonadBase STM μ ⇒ Natural → μ (TBQueue α)
 newTBQueue = liftBase . STM.newTBQueue
 {-# INLINE newTBQueue #-}
 
 -- | A lifted version of 'STM.newTBQueueIO'.
-newTBQueueIO ∷ MonadBase IO μ ⇒ Int → μ (TBQueue α)
+newTBQueueIO ∷ MonadBase IO μ ⇒ Natural → μ (TBQueue α)
 newTBQueueIO = liftBase . STM.newTBQueueIO
 {-# INLINE newTBQueueIO #-}
 
diff --git a/src/Control/Concurrent/STM/TSem/Lifted.hs b/src/Control/Concurrent/STM/TSem/Lifted.hs
--- a/src/Control/Concurrent/STM/TSem/Lifted.hs
+++ b/src/Control/Concurrent/STM/TSem/Lifted.hs
@@ -10,13 +10,14 @@
   , signalTSemN
   ) where
 
+import Numeric.Natural (Natural)
 import Control.Monad.Base (MonadBase(..))
 import Control.Monad.STM (STM)
 import Control.Concurrent.STM.TSem (TSem)
 import qualified Control.Concurrent.STM.TSem as STM
 
 -- | A lifted version of 'STM.newTSem'.
-newTSem ∷ MonadBase STM μ ⇒ Int → μ TSem
+newTSem ∷ MonadBase STM μ ⇒ Integer → μ TSem
 newTSem = liftBase . STM.newTSem
 {-# INLINE newTSem #-}
 
@@ -31,6 +32,6 @@
 {-# INLINE signalTSem #-}
 
 -- | A lifted version of 'STM.signalTSemN'.
-signalTSemN ∷ MonadBase STM μ ⇒ Word → TSem → μ ()
+signalTSemN ∷ MonadBase STM μ ⇒ Natural → TSem → μ ()
 signalTSemN = (liftBase .) . STM.signalTSemN
 {-# INLINE signalTSemN #-}
diff --git a/src/Control/Monad/STM/Lifted.hs b/src/Control/Monad/STM/Lifted.hs
--- a/src/Control/Monad/STM/Lifted.hs
+++ b/src/Control/Monad/STM/Lifted.hs
@@ -7,8 +7,6 @@
   , MonadSTM(..)
   , atomically
   , retry
-  , alwaysSucceeds
-  , always
   , check
   , throwSTM
   , catchSTM
@@ -95,16 +93,6 @@
 retry ∷ MonadBase STM μ ⇒ μ α
 retry = liftBase STM.retry
 {-# INLINE retry #-}
-
--- | A lifted version of 'STM.alwaysSucceeds'.
-alwaysSucceeds ∷ MonadBase STM μ ⇒ STM α → μ ()
-alwaysSucceeds = liftBase . STM.alwaysSucceeds
-{-# INLINE alwaysSucceeds #-}
-
--- | A lifted version of 'STM.always'.
-always ∷ MonadBase STM μ ⇒ STM Bool → μ ()
-always = liftBase . STM.always
-{-# INLINE always #-}
 
 -- | A lifted version of 'STM.check'.
 check ∷ MonadBase STM μ ⇒ Bool → μ ()
