diff --git a/postgresql-types.cabal b/postgresql-types.cabal
--- a/postgresql-types.cabal
+++ b/postgresql-types.cabal
@@ -1,6 +1,6 @@
 cabal-version: 3.0
 name: postgresql-types
-version: 0.1.6.0
+version: 0.1.7.0
 category: PostgreSQL, Codecs
 synopsis: Precise PostgreSQL types representation and driver-agnostic codecs
 description:
diff --git a/src/library/PostgresqlTypes/Multirange.hs b/src/library/PostgresqlTypes/Multirange.hs
--- a/src/library/PostgresqlTypes/Multirange.hs
+++ b/src/library/PostgresqlTypes/Multirange.hs
@@ -45,7 +45,7 @@
 --
 -- [PostgreSQL docs](https://www.postgresql.org/docs/18/rangetypes.html#RANGETYPES-MULTIRANGE).
 newtype Multirange a = Multirange (Vector (Range a))
-  deriving stock (Eq, Functor)
+  deriving stock (Eq, Functor, Foldable, Traversable)
   deriving (Show, Read, IsString) via (ViaIsPrimitive (Multirange a))
 
 instance (IsMultirangeElement a) => IsPrimitive (Multirange a) where
diff --git a/src/library/PostgresqlTypes/Range.hs b/src/library/PostgresqlTypes/Range.hs
--- a/src/library/PostgresqlTypes/Range.hs
+++ b/src/library/PostgresqlTypes/Range.hs
@@ -47,7 +47,7 @@
 data Range a
   = EmptyRange
   | BoundedRange (Maybe a) (Maybe a)
-  deriving stock (Eq, Functor)
+  deriving stock (Eq, Functor, Foldable, Traversable)
   deriving (Show, Read, IsString) via (ViaIsPrimitive (Range a))
 
 instance (IsRangeElement a) => IsPrimitive (Range a) where
