diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.10
+
+* make memConstEqual more constant not using boolean comparaison
+
 ## 0.9
 
 * memConstEqual was comparing length times the first byte instead of comparing all the bytes one to one
diff --git a/Data/Memory/PtrMethods.hs b/Data/Memory/PtrMethods.hs
--- a/Data/Memory/PtrMethods.hs
+++ b/Data/Memory/PtrMethods.hs
@@ -27,7 +27,7 @@
 import           Foreign.Storable         (peek, poke, pokeByteOff, peekByteOff)
 import           Foreign.C.Types
 import           Foreign.Marshal.Alloc    (allocaBytesAligned)
-import           Data.Bits                (xor)
+import           Data.Bits                ((.|.), xor)
 
 -- | Create a new temporary buffer
 memCreateTemporary :: Int -> (Ptr Word8 -> IO a) -> IO a
@@ -90,20 +90,13 @@
 -- over all the bytes present before yielding a result even when
 -- knowing the overall result early in the processing.
 memConstEqual :: Ptr Word8 -> Ptr Word8 -> Int -> IO Bool
-memConstEqual p1 p2 n = loop 0 True
+memConstEqual p1 p2 n = loop 0 0
   where
-    loop i !ret
-        | i == n    = return ret
+    loop i !acc
+        | i == n    = return $! acc == 0
         | otherwise = do
-            e <- (==) <$> peekByteOff p1 i <*> (peekByteOff p2 i :: IO Word8)
-            loop (i+1) (ret &&! e)
-
-    -- Bool == Bool
-    (&&!) :: Bool -> Bool -> Bool
-    True  &&! True  = True
-    True  &&! False = False
-    False &&! True  = False
-    False &&! False = False
+            e <- xor <$> peekByteOff p1 i <*> (peekByteOff p2 i :: IO Word8)
+            loop (i+1) (acc .|. e)
 
 foreign import ccall unsafe "memset"
     c_memset :: Ptr Word8 -> Word8 -> CSize -> IO ()
diff --git a/memory.cabal b/memory.cabal
--- a/memory.cabal
+++ b/memory.cabal
@@ -1,5 +1,5 @@
 Name:                memory
-Version:             0.9
+Version:             0.10
 Synopsis:            memory and related abstraction stuff
 Description:
     Chunk of memory, polymorphic byte array management and manipulation
