diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,15 @@
 # Changelog
 
+## 1.1.0.0
+
+### Breaking changes
+
+* Removed deprecated API
+
+### Non breaking changes
+
+* `io-classes-1.1.0.0`
+
 ## 1.0.0.1
 
 ### Non breaking changes
diff --git a/src/Control/Concurrent/Class/MonadSTM/Strict/TMVar.hs b/src/Control/Concurrent/Class/MonadSTM/Strict/TMVar.hs
--- a/src/Control/Concurrent/Class/MonadSTM/Strict/TMVar.hs
+++ b/src/Control/Concurrent/Class/MonadSTM/Strict/TMVar.hs
@@ -24,9 +24,6 @@
   , tryReadTMVar
   , swapTMVar
   , isEmptyTMVar
-    -- * deprecated api
-  , newTMVarM
-  , newEmptyTMVarM
     -- * MonadLabelledSTM
   , labelTMVar
   , labelTMVarIO
@@ -81,19 +78,11 @@
 newTMVarIO :: MonadSTM m => a -> m (StrictTMVar m a)
 newTMVarIO !a = StrictTMVar <$> Lazy.newTMVarIO a
 
-newTMVarM :: MonadSTM m => a -> m (StrictTMVar m a)
-newTMVarM = newTMVarIO
-{-# DEPRECATED newTMVarM "Use newTVarIO" #-}
-
 newEmptyTMVar :: MonadSTM m => STM m (StrictTMVar m a)
 newEmptyTMVar = StrictTMVar <$> Lazy.newEmptyTMVar
 
 newEmptyTMVarIO :: MonadSTM m => m (StrictTMVar m a)
 newEmptyTMVarIO = StrictTMVar <$> Lazy.newEmptyTMVarIO
-
-newEmptyTMVarM :: MonadSTM m => m (StrictTMVar m a)
-newEmptyTMVarM = newEmptyTMVarIO
-{-# DEPRECATED newEmptyTMVarM "Use newEmptyTMVarIO" #-}
 
 takeTMVar :: MonadSTM m => StrictTMVar m a -> STM m a
 takeTMVar (StrictTMVar tmvar) = Lazy.takeTMVar tmvar
diff --git a/src/Control/Concurrent/Class/MonadSTM/Strict/TVar.hs b/src/Control/Concurrent/Class/MonadSTM/Strict/TVar.hs
--- a/src/Control/Concurrent/Class/MonadSTM/Strict/TVar.hs
+++ b/src/Control/Concurrent/Class/MonadSTM/Strict/TVar.hs
@@ -27,10 +27,6 @@
   , check
     -- ** Low-level API
   , checkInvariant
-    -- ** deprecated API
-  , updateTVar
-  , newTVarM
-  , newTVarWithInvariantM
     -- * MonadLabelSTM
   , labelTVar
   , labelTVarIO
@@ -107,10 +103,6 @@
 newTVarIO :: MonadSTM m => a -> m (StrictTVar m a)
 newTVarIO = newTVarWithInvariantIO (const Nothing)
 
-newTVarM :: MonadSTM m => a -> m (StrictTVar m a)
-newTVarM = newTVarIO
-{-# DEPRECATED newTVarM "Use newTVarIO" #-}
-
 newTVarWithInvariant :: (MonadSTM m, HasCallStack)
                      => (a -> Maybe String) -- ^ Invariant (expect 'Nothing')
                      -> a
@@ -129,13 +121,6 @@
         (\tvar -> mkStrictTVar invariant tvar)
     <$> Lazy.newTVarIO a
 
-newTVarWithInvariantM :: (MonadSTM m, HasCallStack)
-                      => (a -> Maybe String) -- ^ Invariant (expect 'Nothing')
-                      -> a
-                      -> m (StrictTVar m a)
-newTVarWithInvariantM = newTVarWithInvariantIO
-{-# DEPRECATED newTVarWithInvariantM "Use newTVarWithInvariantIO" #-}
-
 readTVar :: MonadSTM m => StrictTVar m a -> STM m a
 readTVar StrictTVar { tvar } = Lazy.readTVar tvar
 
@@ -162,11 +147,6 @@
     a <- readTVar v
     writeTVar v a'
     return a
-
-
-updateTVar :: MonadSTM m => StrictTVar m s -> (s -> (a, s)) -> STM m a
-updateTVar = stateTVar
-{-# DEPRECATED updateTVar "Use stateTVar" #-}
 
 
 {-------------------------------------------------------------------------------
diff --git a/strict-stm.cabal b/strict-stm.cabal
--- a/strict-stm.cabal
+++ b/strict-stm.cabal
@@ -1,6 +1,6 @@
 cabal-version:       3.0
 name:                strict-stm
-version:             1.0.0.1
+version:             1.1.0.0
 synopsis:            Strict STM interface polymorphic over stm implementation.
 description:
   Strict STM interface provided on top of
@@ -59,7 +59,7 @@
                        array,
                        stm         >= 2.5 && <2.6,
 
-                       io-classes  ^>= 1.0
+                       io-classes  >= 1.0 && <1.2
   ghc-options:         -Wall
                        -Wno-unticked-promoted-constructors
                        -Wcompat
