diff --git a/Unique.cabal b/Unique.cabal
--- a/Unique.cabal
+++ b/Unique.cabal
@@ -1,85 +1,76 @@
-name:                Unique
-
-version:             0.4.7.7
+cabal-version: 2.0
+name:          Unique
+version:       0.4.7.8
+license:       BSD3
+license-file:  LICENSE
+maintainer:    ualinuxcn@gmail.com
+author:        Volodymyr Yashchenko
+tested-with:   ghc >=7.4 && <8.2.1 || >8.2.1 && <8.12
+synopsis:      It provides the functionality like unix "uniq" utility
+description:
+    Library provides the functions to find unique and duplicate elements in the list
 
-synopsis:            It provides the functionality like unix "uniq" utility
-description:         Library provides the functions to find unique and duplicate elements in the list
-license:             BSD3
-license-file:        LICENSE
-author:              Volodymyr Yashchenko
-maintainer:          ualinuxcn@gmail.com
-category:            Data
-build-type:          Simple
-cabal-version:       >=1.10
-tested-with:    GHC == 8.8
-              , GHC == 8.6
-              , GHC == 8.4
-              , GHC == 8.2
-              , GHC == 8.0
-              , GHC == 7.8
-              , GHC == 7.6
-              , GHC == 7.4
+category:      Data
+build-type:    Simple
 
 source-repository head
-   type:             git
-   location:         https://github.com/kapralVV/Unique.git
+    type:     git
+    location: https://github.com/kapralVV/Unique.git
 
 library
-  exposed-modules:      Data.List.Unique,
-                        Data.List.UniqueStrict,
-                        Data.List.UniqueUnsorted
-
-  build-depends:         base                 >= 4.0 && < 5
-                       , containers           >= 0.5.0 && < 0.7
-                       , extra                >= 1.6.2 && < 1.7
-                       , hashable             >= 1.2.6 && < 1.4
-                       , unordered-containers >= 0.2.8 && < 0.3
-
-  default-language:    Haskell2010
-  ghc-options:         -Wall
-
-
-Test-Suite HspecTest
-  type:                exitcode-stdio-1.0
-  hs-source-dirs:      tests
-  main-is:             Main.hs
-
-  other-modules:       Unique.Complex
-                     , Unique.IsUnique
-                     , Unique.RepeatedBy
-                     , Unique.SortUniq
-                     , Unique.AllUnique
-                     , UniqueStrict.IsUnique
-                     , UniqueStrict.RepeatedBy
-                     , UniqueStrict.SortUniq
-                     , UniqueStrict.AllUnique
-                     , UniqueUnsorted.IsUnique
-                     , UniqueUnsorted.RemoveDuplicates
-                     , UniqueUnsorted.RepeatedBy
-                     , UniqueUnsorted.AllUnique
-
-
-  build-depends:       base          >= 4.0 && < 5
-                     , hspec
-                     , containers    >= 0.5.0 && < 0.7
-                     , QuickCheck    >= 2.10 && <2.15
-                     , Unique
+    exposed-modules:
+        Data.List.Unique
+        Data.List.UniqueStrict
+        Data.List.UniqueUnsorted
 
-  default-language:    Haskell2010
-  ghc-options:        -Wall
+    default-language: Haskell2010
+    ghc-options:      -Wall
+    build-depends:
+        base >=4.0 && <=4.15,
+        containers >=0.5.0.0 && <=0.7,
+        extra >=1.6.2 && <=1.8,
+        hashable >= 1.2.6 && <=1.4,
+        unordered-containers >= 0.2.8 && <=0.3
 
-Benchmark Criterion
-  type:                exitcode-stdio-1.0
-  hs-source-dirs:      bench
-  main-is:             Main.hs
+test-suite HspecTest
+    type:             exitcode-stdio-1.0
+    main-is:          Main.hs
+    hs-source-dirs:   tests
+    other-modules:
+        Unique.Complex
+        Unique.IsUnique
+        Unique.RepeatedBy
+        Unique.SortUniq
+        Unique.AllUnique
+        UniqueStrict.IsUnique
+        UniqueStrict.RepeatedBy
+        UniqueStrict.SortUniq
+        UniqueStrict.AllUnique
+        UniqueUnsorted.IsUnique
+        UniqueUnsorted.RemoveDuplicates
+        UniqueUnsorted.RepeatedBy
+        UniqueUnsorted.AllUnique
 
-  build-depends:       base          >= 4.0 && < 5
-                     , Unique
-                     , criterion
-                     , QuickCheck    >= 2.10 && <2.15
-                     , quickcheck-instances
-                     , bytestring
-                     , hashable
+    default-language: Haskell2010
+    ghc-options:      -Wall
+    build-depends:
+        base >=4.0 && <5,
+        Unique,
+        hspec -any,
+        containers >=0.5.0.0 && <=0.7,
+        QuickCheck    >= 2.10 && <2.15
 
-  default-language:    Haskell2010
-  ghc-options:        -Wall -rtsopts
+benchmark Criterion
+    type:             exitcode-stdio-1.0
+    main-is:          Main.hs
+    hs-source-dirs:   bench
+    default-language: Haskell2010
+    ghc-options:      -Wall -rtsopts
+    build-depends:
+        base >=4.0 && <5,
+        Unique,
+        criterion -any,
+        QuickCheck    >= 2.10 && <2.15,
+        quickcheck-instances -any,
+        bytestring -any,
+        hashable -any
