diff --git a/Data/Map/Class.hs b/Data/Map/Class.hs
--- a/Data/Map/Class.hs
+++ b/Data/Map/Class.hs
@@ -249,7 +249,8 @@
 
 newtype Union map a = Union { unUnion :: map a }
   deriving (Functor, Foldable, Traversable)
-  deriving newtype (Eq, Ord, Read, Show, Eq1, Ord1, Read1, Show1)
+  deriving (Eq, Ord, Read, Show) via map a
+  deriving (Eq1, Ord1, Read1, Show1) via map
 
 instance Filtrable map => Filtrable (Union map) where
     mapMaybe f = Union . mapMaybe f . unUnion
@@ -273,7 +274,8 @@
 
 newtype Intersection map a = Intersection { unIntersection :: map a }
   deriving (Functor, Foldable, Traversable)
-  deriving newtype (Eq, Ord, Read, Show, Eq1, Ord1, Read1, Show1)
+  deriving (Eq, Ord, Read, Show) via map a
+  deriving (Eq1, Ord1, Read1, Show1) via map
 
 instance Filtrable map => Filtrable (Intersection map) where
     mapMaybe f = Intersection . mapMaybe f . unIntersection
@@ -294,7 +296,8 @@
 
 newtype SymmetricDifference map a = SymmetricDifference { unSymmetricDifference :: map a }
   deriving (Functor, Foldable, Traversable)
-  deriving newtype (Eq, Ord, Read, Show, Eq1, Ord1, Read1, Show1)
+  deriving (Eq, Ord, Read, Show) via map a
+  deriving (Eq1, Ord1, Read1, Show1) via map
 
 instance Filtrable map => Filtrable (SymmetricDifference map) where
     mapMaybe f = SymmetricDifference . mapMaybe f . unSymmetricDifference
diff --git a/Map.cabal b/Map.cabal
--- a/Map.cabal
+++ b/Map.cabal
@@ -1,5 +1,5 @@
 name:                Map
-version:             0.1.3.1
+version:             0.1.3.2
 synopsis:            Class of key-value maps
 -- description:
 license:             BSD3
@@ -20,7 +20,7 @@
                      , containers >=0.5.9 && <0.7
                      , either-both >=0.1.1 && <0.2
                      , filtrable >=0.1.2 && <0.2
-                     , util >=0.1.10 && <0.2
+                     , util >=0.1.14.1 && <0.2
   default-language:    Haskell2010
   default-extensions:  UnicodeSyntax
                      , LambdaCase
@@ -33,9 +33,9 @@
                      , FlexibleContexts
                      , FlexibleInstances
                      , StandaloneDeriving
-                     , GeneralizedNewtypeDeriving
+                     , DerivingVia
                      , DeriveFunctor, DeriveFoldable, DeriveTraversable
-                     , DerivingStrategies
+                     , Safe
   ghc-options:         -Wall -Wcompat -Wredundant-constraints -Wno-name-shadowing
                        -Wincomplete-record-updates -Wincomplete-uni-patterns
                        -Werror=incomplete-patterns
