diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -22,4 +22,8 @@
 
 # 1.1.3.0 -- 2022-07-20
 
-* Addition of inverse and pseudoInverse functions.
+* Addition of inverse and pseudoInverse functions.
+
+# 1.1.4.0 -- 2022-07-20
+
+* Major bug correction : instance Eq for Data.WeakMap
diff --git a/WeakSets.cabal b/WeakSets.cabal
--- a/WeakSets.cabal
+++ b/WeakSets.cabal
@@ -14,7 +14,7 @@
 -- PVP summary:      +-+------- breaking API changes
 --                   | | +----- non-breaking API additions
 --                   | | | +--- code changes with no API change
-version:            1.1.3.0
+version:            1.1.4.0
 
 -- A short (one-line) description of the package.
 synopsis:
diff --git a/src/Data/WeakMap.hs b/src/Data/WeakMap.hs
--- a/src/Data/WeakMap.hs
+++ b/src/Data/WeakMap.hs
@@ -225,8 +225,11 @@
 -- | A weak map is a weak set of pairs (key,value) such that their should only be one pair with a given key.
 --
 -- It is an abstract type, the smart constructor is `weakMap`.
-data Map k v = Map {-# UNPACK #-} !(Set (k,v)) deriving (Eq)
+data Map k v = Map {-# UNPACK #-} !(Set (k,v))
 
+instance (Eq k, Eq v) => Eq (Map k v) where
+    m1 == m2 = (mapToSet m1) == (mapToSet m2)
+
 instance (Show k, Show v) => Show (Map k v) where
     show (Map al) = "(weakMap "++ init rest ++")"
         where
@@ -395,7 +398,7 @@
 
 
 -- | /O(1)/. Insert a new key and value in the map. If the key is already present in the map, the associated value is replaced with the supplied value. `insert` is equivalent to @`insertWith` `const`@. 
-insert :: (Eq k) => k -> a -> Map k a -> Map k a
+insert :: k -> a -> Map k a -> Map k a
 insert k v (Map al) = Map $ Set.insert (k,v) al
 
 -- | /O(n)/. Insert with a function, combining new value and old value. @insertWith f key value mp@ will insert the pair (key, value) into mp if key does not exist in the function. If the key does exist, the function will insert the pair (key, f new_value old_value). 
