diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,3 +4,7 @@
 
 * First version. Released on an unsuspecting world. Is a fork of the https://hackage.haskell.org/package/subG-0.6.1.0 package as well as also monoid-insertleft package is.
 
+## 0.1.1.0 -- 2024-01-15
+
+* First version revised A. Switched to foldl' instead of foldr in the functions here. It looks like for many cases it leads to more efficient imlementation both in time and space.
+
diff --git a/Data/MinMax1.hs b/Data/MinMax1.hs
--- a/Data/MinMax1.hs
+++ b/Data/MinMax1.hs
@@ -50,7 +50,7 @@
 minMax11By g xs 
  | n < 2 = Nothing
  | otherwise = Just (r1, r2) 
-      where f z (x,y,k)
+      where f (x,y,k) z
               | k >= 2 = if
                  | g z x == LT -> (z,y,2)
                  | g z y == GT -> (x,z,2)
@@ -59,7 +59,7 @@
                  | g z y == LT -> (z,y,2) 
                  | otherwise -> (y,z,2) 
               | otherwise = (undefined,z,1)
-            (r1,r2,n) = F.foldr f (undefined,undefined,0) xs
+            (r1,r2,n) = F.foldl' f (undefined,undefined,0) xs
 {-# SPECIALIZE minMax11By :: (Ord a) => (a -> a -> Ordering) -> [a] -> Maybe (a, a) #-}
 
 -- | Given a finite structure with at least 3 elements returns a tuple with the two most minimum elements
@@ -75,7 +75,7 @@
 minMax21By g xs
  | n < 3 = Nothing
  | otherwise = Just (r1, r2, r3) 
-      where f z (x,y,t,k)
+      where f (x,y,t,k) z
               | k >= 3 = if
                  | g z x == LT -> (z,x,t,3)
                  | g z y == LT -> (x,z,t,3)
@@ -89,7 +89,7 @@
                  | g z t == GT -> (undefined,t,z,2)
                  | otherwise -> (undefined,z,t,2)
               | otherwise = (undefined,undefined,z,1)
-            (r1,r2,r3,n) = F.foldr f (undefined,undefined,undefined,0) xs
+            (r1,r2,r3,n) = F.foldl' f (undefined,undefined,undefined,0) xs
 {-# SPECIALIZE minMax21By :: (Ord a) => (a -> a -> Ordering) -> [a] -> Maybe (a, a, a) #-}
 
 -- | Given a finite structure with at least 3 elements returns a tuple with the minimum element
@@ -105,7 +105,7 @@
 minMax12By g xs
  | n < 3 = Nothing
  | otherwise = Just (r1, r2, r3) 
-      where f z (x,y,t,k)
+      where f (x,y,t,k) z
               | k >= 3 = if
                  | g z x == LT -> (z,y,t,3)
                  | g z t == GT -> (x,t,z,3)
@@ -119,7 +119,7 @@
                  | g z t == GT -> (undefined,t,z,2)
                  | otherwise -> (undefined,z,t,2)
               | otherwise = (undefined,undefined,z,1)
-            (r1,r2,r3,n) = F.foldr f (undefined,undefined,undefined,0) xs
+            (r1,r2,r3,n) = F.foldl' f (undefined,undefined,undefined,0) xs
 {-# SPECIALIZE  minMax12By :: (Ord a) => (a -> a -> Ordering) -> [a] -> Maybe (a,a,a) #-}
 
 -- | Given a finite structure with at least 4 elements returns a tuple with two minimum elements
@@ -135,7 +135,7 @@
 minMax22By g xs
  | n < 4 = Nothing
  | otherwise = Just (r1, r2, r3, r4) 
-      where f z (x,y,t,u,k)
+      where f (x,y,t,u,k) z
               | k >= 4 = if
                  | g z u == GT -> (x,y,u,z,4)
                  | g z t == GT -> (x,y,z,u,4)
@@ -155,6 +155,6 @@
                  | g z u == GT -> (undefined,undefined,u,z,2)
                  | otherwise -> (undefined,undefined,z,u,2)
               | otherwise = (undefined,undefined,undefined,z,1)
-            (r1,r2,r3,r4,n) = F.foldr f (undefined,undefined,undefined,undefined,0) xs
+            (r1,r2,r3,r4,n) = F.foldl' f (undefined,undefined,undefined,undefined,0) xs
 {-# SPECIALIZE  minMax22By :: (Ord a) => (a -> a -> Ordering) -> [a] -> Maybe (a,a,a,a) #-}
 
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@
 
 The foundation founder is [Emma Kok](https://www.emmakok.nl).
 
-On the 06/01/2024 there is Sophie's Kok, a sister of Emma Kok, 19th Birthday (she is 18). Therefore, the version 0.1.0.0 is additionally devoted also to her.
+On the 06/01/2024 there is Sophie's Kok, a sister of Emma Kok, 19th Birthday (she is 18). Therefore, the versions 0.1.0.0 and 0.1.1.0 are additionally devoted also to her.
 
 Besides, you can support Ukraine and Ukrainian people. 
 
diff --git a/minmax.cabal b/minmax.cabal
--- a/minmax.cabal
+++ b/minmax.cabal
@@ -2,7 +2,7 @@
 -- see http://haskell.org/cabal/users-guide/
 
 name:                minmax
-version:             0.1.0.0
+version:             0.1.1.0
 synopsis:            Functions to find both minimum and maximum (or several of them simultaneously) in one pass.
 description:         Contains some functions to find out both minimum and maximum elements of the finite Foldable structures in one pass. Is a fork of the <https://hackage.haskell.org/package/subG-0.6.1.0>.
 homepage:            https://hackage.haskell.org/package/minmax
@@ -20,7 +20,7 @@
 library
   exposed-modules:     Data.MinMax1
   -- other-modules:
-  other-extensions:    NoImplicitPrelude
+  other-extensions:    NoImplicitPrelude, MultiWayIf
   build-depends:       base >=4.13 && <5
   -- hs-source-dirs:
   default-language:    Haskell2010
