diff --git a/CHANGES.md b/CHANGES.md
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,9 +1,46 @@
+1.3.0
+=====
+
+* [#167](https://github.com/serokell/universum/issues/164):
+  `identity` has been deprecated.
+
+  _Migration guide:_ use `Universum.id` instead.
+* [#170](https://github.com/serokell/universum/pull/170):
+  Remove `ElementConstraint` from the `Container` class.
+  
+  _Migration guide:_ remove `ElementConstraint` from every instance and every type signature.
+* [#174](https://github.com/serokell/universum/issues/174)
+  The `type-operators` dependency has been removed.
+* [#177](https://github.com/serokell/universum/issues/177):
+  The `mask_` reexport from `safe-exceptions` has been deprecated.
+
+  _Migration_guide:_ use `Control.Exception.Safe.mask_` from `safe-exceptions`
+  instead.
+* [#178](https://github.com/serokell/universum/issues/178):
+  `getArgs` has been deprecated. To be removed in a future version.
+
+  _Migration guide:_ use `liftIO` directly with `System.Environment.getArgs`
+  from `base`.
+* [#179](https://github.com/serokell/universum/issues/179):
+  `getContents` and `interact` have been deprecated.
+
+  _Migration guide:_ use `liftIO` directly with `Data.Text.Lazy.IO.getContents`
+  and `Data.Text.Lazy.IO.interact`, both from the `text` package.
+* [#180](https://github.com/serokell/universum/issues/180):
+  The `Lifted.ST` module has been deprecated. To be removed in a future
+  version.
+  
+  _Migration guide:_ use `liftIO` directly with functions from
+  `Control.Monad.ST` instead.
+* [#181](https://github.com/serokell/universum/issues/181):
+  `list` has been deprecated. To be removed in a future version.
+
 1.2.0
 =====
 
 * [#159](https://github.com/serokell/universum/issues/159) **Breaking change**:
   Remove `text-format` dependency.
-  
+
   _Migration guide:_ import `Buildable` type class either from `text-format` or `formatting` or `fmt` library. Instead of `pretty` you can use [`fmt`](https://hackage.haskell.org/package/fmt-0.6/docs/Fmt.html#v:fmt) function.
 * [#164](https://github.com/serokell/universum/issues/164):
   Don't reexport `log :: Floating a => a -> a`.
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -346,8 +346,14 @@
 Projects that use Universum [↑](#structure-of-this-tutorial)
 ---------------------------
 
-- [cardano-report-server](https://github.com/input-output-hk/cardano-report-server)
-- [cardano-sl](https://github.com/input-output-hk/cardano-sl)
-- [importify](https://github.com/serokell/importify)
-- [log-warper](https://github.com/serokell/log-warper)
-- [orgstat](https://github.com/volhovm/orgstat)
+Please submit a PR if you are using Universum!
+
+| λ |
+|---|
+| [cardano-report-server](https://github.com/input-output-hk/cardano-report-server) |
+| [cardano-sl](https://github.com/input-output-hk/cardano-sl) |
+| [importify](https://github.com/serokell/importify) |
+| [log-warper](https://github.com/serokell/log-warper) |
+| [orgstat](https://github.com/volhovm/orgstat) |
+| [tintin](https://github.com/theam/tintin) |
+| [require](https://theam.github.io/require/) |
diff --git a/Setup.hs b/Setup.hs
deleted file mode 100644
--- a/Setup.hs
+++ /dev/null
@@ -1,2 +0,0 @@
-import Distribution.Simple
-main = defaultMain
diff --git a/src/Universum/Container/Class.hs b/src/Universum/Container/Class.hs
--- a/src/Universum/Container/Class.hs
+++ b/src/Universum/Container/Class.hs
@@ -46,7 +46,7 @@
                 product, sequence_, sum)
 
 import Universum.Applicative (Alternative (..), Const, ZipList, pass)
-import Universum.Base (Constraint, Word8)
+import Universum.Base (Word8)
 import Universum.Container.Reexport (HashMap, HashSet, Hashable, IntMap, IntSet, Map, Seq, Set,
                                      Vector)
 import Universum.Functor (Identity)
@@ -198,11 +198,6 @@
     type Element t :: *
     type Element t = ElementDefault t
 
-    -- | Constraint for elements. This can be used to implement more efficient
-    -- implementation of some methods. For example 'elem' for 'Set' and 'HashSet'.
-    type ElementConstraint t :: * -> Constraint
-    type ElementConstraint t = Eq
-
     -- | Convert container to list of elements.
     --
     -- >>> toList @Text "aba"
@@ -245,12 +240,11 @@
     length = Foldable.length
     {-# INLINE length #-}
 
-    elem :: ElementConstraint t (Element t) => Element t -> t -> Bool
+    elem :: Eq (Element t) => Element t -> t -> Bool
     default elem :: ( Foldable f
                     , t ~ f a
                     , Element t ~ a
-                    , ElementConstraint t ~ Eq
-                    , ElementConstraint t (Element t)
+                    , Eq a
                     ) => Element t -> t -> Bool
     elem = Foldable.elem
     {-# INLINE elem #-}
@@ -308,7 +302,7 @@
                            Just x  -> f x y)
     {-# INLINE foldl1 #-}
 
-    notElem :: ElementConstraint t (Element t) => Element t -> t -> Bool
+    notElem :: Eq (Element t) => Element t -> t -> Bool
     notElem x = not . elem x
     {-# INLINE notElem #-}
 
@@ -502,18 +496,13 @@
 -- Efficient instances
 ----------------------------------------------------------------------------
 
-instance Container (Set v) where
-    type ElementConstraint (Set v) = Ord
+instance Ord v => Container (Set v) where
     elem = Set.member
     {-# INLINE elem #-}
     notElem = Set.notMember
     {-# INLINE notElem #-}
 
-class (Eq a, Hashable a) => CanHash a
-instance (Eq a, Hashable a) => CanHash a
-
-instance Container (HashSet v) where
-    type ElementConstraint (HashSet v) = CanHash
+instance (Eq v, Hashable v) => Container (HashSet v) where
     elem = HashSet.member
     {-# INLINE elem #-}
 
diff --git a/src/Universum/Exception.hs b/src/Universum/Exception.hs
--- a/src/Universum/Exception.hs
+++ b/src/Universum/Exception.hs
@@ -15,14 +15,15 @@
        , pattern Exc
 #endif
        , note
+       , mask_
        ) where
 
 -- exceptions from safe-exceptions
 import Control.Exception.Safe (Exception (..), MonadCatch, MonadMask (..), MonadThrow,
                                SomeException (..), bracket, bracketOnError, bracket_, catch,
-                               catchAny, displayException, finally, handleAny, mask_, onException,
+                               catchAny, displayException, finally, handleAny, onException,
                                throwM, try, tryAny)
-
+import qualified Control.Exception.Safe as Safe (mask_)
 import Control.Monad.Except (MonadError, throwError)
 import Universum.Applicative (Applicative (pure))
 import Universum.Monad (Maybe (..), maybe)
@@ -48,6 +49,10 @@
 bug :: (HasCallStack, Exception e) => e -> a
 bug e = Safe.impureThrow (Bug (Safe.toException e) callStack)
 #endif
+
+mask_ :: MonadMask m => m a -> m a
+mask_ = Safe.mask_
+{-# DEPRECATED mask_ "This function will be removed in a future version of this package, use `Control.Exception.Safe.mask_` from `safe-exceptions` instead." #-}
 
 -- To suppress redundant applicative constraint warning on GHC 8.0
 -- | Throws error for 'Maybe' if 'Data.Maybe.Nothing' is given.
diff --git a/src/Universum/Function.hs b/src/Universum/Function.hs
--- a/src/Universum/Function.hs
+++ b/src/Universum/Function.hs
@@ -11,3 +11,4 @@
 identity :: a -> a
 identity = id
 {-# INLINE identity #-}
+{-# DEPRECATED identity "Use `id` instead" #-}
diff --git a/src/Universum/Lifted/Env.hs b/src/Universum/Lifted/Env.hs
--- a/src/Universum/Lifted/Env.hs
+++ b/src/Universum/Lifted/Env.hs
@@ -24,6 +24,7 @@
 getArgs :: MonadIO m => m [String]
 getArgs = liftIO (XIO.getArgs)
 {-# INLINE getArgs #-}
+{-# DEPRECATED getArgs "This function will be removed in a future version of this package, use `liftIO` directly with `System.Environment.getArgs` from `base`." #-}
 
 -- | Lifted version of 'System.Exit.exitWith'.
 exitWith :: MonadIO m => ExitCode -> m a
diff --git a/src/Universum/Lifted/File.hs b/src/Universum/Lifted/File.hs
--- a/src/Universum/Lifted/File.hs
+++ b/src/Universum/Lifted/File.hs
@@ -37,6 +37,7 @@
 getContents :: MonadIO m => m L.Text
 getContents = liftIO LIO.getContents
 {-# INLINE getContents #-}
+{-# DEPRECATED getContents "This function will be removed in a future version of this package, use `liftIO` with `Data.Text.Lazy.IO.getContents` from `text` instead." #-}
 
 -- | Lifted version of 'Data.Text.getLine'.
 getLine :: MonadIO m => m Text
@@ -47,6 +48,7 @@
 interact :: MonadIO m => (L.Text -> L.Text) -> m ()
 interact a = liftIO (LIO.interact a)
 {-# INLINE interact #-}
+{-# DEPRECATED interact "This function will be removed in a future version of this package, use `liftIO` with `Data.Text.Lazy.IO.interact` from `text` instead." #-}
 
 -- | Lifted version of 'Data.Text.readFile'.
 readFile :: MonadIO m => FilePath -> m Text
diff --git a/src/Universum/Lifted/ST.hs b/src/Universum/Lifted/ST.hs
--- a/src/Universum/Lifted/ST.hs
+++ b/src/Universum/Lifted/ST.hs
@@ -1,6 +1,6 @@
 -- | This module contains lifted version of 'XIO.stToIO' function.
 
-module Universum.Lifted.ST
+module Universum.Lifted.ST {-# DEPRECATED "This module will be removed in a future version of this package, use `liftIO` directly with functions from `Control.Monad.ST` instead." #-}
        ( stToIO
        ) where
 
diff --git a/src/Universum/List/Safe.hs b/src/Universum/List/Safe.hs
--- a/src/Universum/List/Safe.hs
+++ b/src/Universum/List/Safe.hs
@@ -1,5 +1,5 @@
-{-# LANGUAGE CPP         #-}
-{-# LANGUAGE Trustworthy #-}
+{-# LANGUAGE CPP  #-}
+{-# LANGUAGE Safe #-}
 
 -- | This module contains safe functions to work with list type (mostly with 'NonEmpty').
 
@@ -40,6 +40,7 @@
 list def f xs = case xs of
     [] -> def
     _  -> fmap f xs
+{-# DEPRECATED list "This function will be removed in a future version of this package, do not use it." #-}
 
 -- | Destructuring list into its head and tail if possible. This function is total.
 --
diff --git a/src/Universum/Nub.hs b/src/Universum/Nub.hs
--- a/src/Universum/Nub.hs
+++ b/src/Universum/Nub.hs
@@ -1,7 +1,7 @@
 {-| Functions to remove duplicates from a list.
 
  = Performance
- To check the performance there was done a bunch of benchmarks.
+ To check the performance many benchmarks were done.
  Benchmarks were made on lists of 'Prelude.Int's and 'Data.Text.Text's.
  There were two types of list to use:
 
@@ -32,7 +32,6 @@
 import Data.Hashable (Hashable)
 import Data.HashSet as HashSet
 import Data.Ord (Ord)
-import Data.Set (Set)
 import Prelude (Bool, Char, (.))
 
 import qualified Data.Set as Set
@@ -42,7 +41,7 @@
 
 {-@ predicate NoDups L = Set_emp (dups L) @-}
 
-{-@ measure dups :: [a] -> (Set a)
+{-@ measure dups :: [a] -> (Set.Set a)
     dups ([])   = {v | Set_emp v}
     dups (x:xs) = {v | v =
       if (Set_mem x (listElts xs))
@@ -50,7 +49,7 @@
       else (dups xs)}
 @-}
 
-{-@ Set.toList :: Set a -> ListUnique a @-}
+{-@ Set.toList :: Set.Set a -> ListUnique a @-}
 
 -- | Like 'Prelude.nub' but runs in @O(n * log n)@ time and requires 'Ord'.
 --
diff --git a/src/Universum/TypeOps.hs b/src/Universum/TypeOps.hs
--- a/src/Universum/TypeOps.hs
+++ b/src/Universum/TypeOps.hs
@@ -28,7 +28,27 @@
 import Data.Kind (Constraint)
 #endif
 
-import Control.Type.Operator (type ($), type (<+>))
+-- | Infix application.
+--
+-- @
+-- f :: Either String $ Maybe Int
+-- =
+-- f :: Either String (Maybe Int)
+-- @
+type f $ a = f a
+infixr 2 $
+
+-- | Map several constraints over a single variable.
+--
+-- @
+-- a :: [Show, Read] \<+> a => a -> a
+-- =
+-- a :: (Show a, Read a) => a -> a
+-- @
+type family (<+>) (c :: [k -> Constraint]) (a :: k) where
+    (<+>) '[] a = (() :: Constraint)
+    (<+>) (ch ': ct) a = (ch a, (<+>) ct a)
+infixl 9 <+>
 
 -- | Map several constraints over several variables.
 --
diff --git a/universum.cabal b/universum.cabal
--- a/universum.cabal
+++ b/universum.cabal
@@ -1,5 +1,5 @@
 name:                universum
-version:             1.2.0
+version:             1.3.0
 synopsis:            Custom prelude used in Serokell
 description:         See README.md file for more details.
 homepage:            https://github.com/serokell/universum
@@ -11,7 +11,7 @@
 category:            Prelude
 stability:           stable
 build-type:          Simple
-cabal-version:       2.0
+cabal-version:       >=1.18
 bug-reports:         https://github.com/serokell/universum/issues
 tested-with:         GHC == 7.10.3
                    , GHC == 8.0.2
@@ -84,7 +84,6 @@
                      , stm
                      , text
                      , transformers
-                     , type-operators
                      , unordered-containers
                      , utf8-string
                      , vector
