diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -42,3 +42,8 @@
 * Third version. The hashing functionality with its dependencies moved to a new 
 package mmsyn2-hashable. 
 
+## 0.3.1.0 -- 2023-01-28
+
+* Third version revised A. Switched to NoImplicitPrelude extension usage. Some code improvements.
+Updated the boundaries for dependencies.
+
diff --git a/CaseBi/Arr.hs b/CaseBi/Arr.hs
--- a/CaseBi/Arr.hs
+++ b/CaseBi/Arr.hs
@@ -4,12 +4,14 @@
 {-# LANGUAGE BangPatterns #-}
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE MagicHash #-}
+{-# LANGUAGE NoImplicitPrelude #-}
 
+
 -- | Module    :  CaseBi.Arr
--- Copyright   :  (c) OleksandrZhabenko 2020-2021
+-- Copyright   :  (c) OleksandrZhabenko 2020-2023
 -- License     :  MIT
 -- Stability   :  Experimental
--- Maintainer  :  olexandr543@yahoo.com
+-- Maintainer  :  oleksandr.zhabenko@yahoo.com
 --
 -- A library that can be used as a @case ... of@ constuction analogue for the multiple @Ord a => a -> b@
 -- transformations and data representation. Uses 'Array' internally. If you use the module in GHCi, then, please,
@@ -30,7 +32,11 @@
   , getBFstL'
 ) where
 
-import qualified Data.List as L (sortBy)
+import GHC.Base
+import GHC.Num
+import GHC.List (length)
+import Data.Tuple
+import qualified Data.List as L (sortOn)
 import GHC.Arr
 import GHC.Exts
 import Data.Ord (comparing)
@@ -117,7 +123,7 @@
   -> b
 getBFstL' def xs = getBFst'' (# 0, k #) (# l, m #) arr def
   where !l = length xs - 1
-        !arr = listArray (0,l) . L.sortBy (comparing fst) $ xs
+        !arr = listArray (0,l) . L.sortOn fst $ xs
         !k = unsafeAt arr 0
         !m = unsafeAt arr l
 {-# INLINE getBFstL' #-}
@@ -128,6 +134,6 @@
 -}
 listArrSortedByFst :: Ord a => [(a,b)] -> Array Int (a,b)
 listArrSortedByFst xs = listArray (0,l - 1) ys
-  where !ys = L.sortBy (comparing fst) xs
+  where !ys = L.sortOn fst xs
         !l = length ys
 {-# INLINE listArrSortedByFst #-}
diff --git a/mmsyn2-array.cabal b/mmsyn2-array.cabal
--- a/mmsyn2-array.cabal
+++ b/mmsyn2-array.cabal
@@ -2,14 +2,14 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                mmsyn2-array
-version:             0.3.0.0
+version:             0.3.1.0
 synopsis:            A library that can be used for multiple Ord a => a -> b transformations.
 description:         A library that can be used as a @case ... of@ construction replacement for various cases. Since the 0.2.0.0 version also uses the cuckoo hashtables in the respective module. Since the 0.3.0.0 version the hashing functionality moved to the separate package mmsyn2-hashable.
 homepage:            https://hackage.haskell.org/package/mmsyn2-array
 license:             MIT
 license-file:        LICENSE
 author:              OleksandrZhabenko
-maintainer:          olexandr543@yahoo.com
+maintainer:          oleksandr.zhabenko@yahoo.com
 copyright:           Oleksandr Zhabenko
 category:            Development, Data, Language
 build-type:          Simple
@@ -19,8 +19,8 @@
 library
   exposed-modules:     CaseBi.Arr
   -- other-modules:
-  other-extensions:    UnboxedTuples, BangPatterns, FlexibleContexts, MagicHash
+  other-extensions:    UnboxedTuples, BangPatterns, FlexibleContexts, MagicHash, NoImplicitPrelude
   ghc-options:         -funbox-strict-fields
-  build-depends:       base >=4.7 && <5
+  build-depends:       base >=4.13 && <5
   -- hs-source-dirs:
   default-language:    Haskell2010
