diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
 # Changelog
 
+## [0.4.2.0] - 2024-08-06
+
+### Added
+
+* `HasCodec` instances for `DList` and `DNonEmpty` from the `dlist` package.
+
 ## [0.4.1.0] - 2024-08-03
 
 ### Changed
diff --git a/autodocodec.cabal b/autodocodec.cabal
--- a/autodocodec.cabal
+++ b/autodocodec.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           autodocodec
-version:        0.4.1.0
+version:        0.4.2.0
 synopsis:       Self-documenting encoder and decoder
 homepage:       https://github.com/NorfairKing/autodocodec#readme
 bug-reports:    https://github.com/NorfairKing/autodocodec/issues
@@ -42,6 +42,7 @@
     , base >=4.7 && <5
     , bytestring
     , containers
+    , dlist
     , hashable
     , mtl
     , scientific
diff --git a/src/Autodocodec/Class.hs b/src/Autodocodec/Class.hs
--- a/src/Autodocodec/Class.hs
+++ b/src/Autodocodec/Class.hs
@@ -19,6 +19,10 @@
 #if MIN_VERSION_aeson(2,0,0)
 import Data.Aeson.KeyMap (KeyMap)
 #endif
+import Data.DList (DList)
+import qualified Data.DList as DList
+import Data.DList.DNonEmpty (DNonEmpty)
+import qualified Data.DList.DNonEmpty as DNonEmpty
 import Data.Functor.Const (Const (Const))
 import Data.Functor.Identity
 import Data.HashMap.Strict (HashMap)
@@ -155,8 +159,14 @@
 instance (HasCodec a) => HasCodec [a] where
   codec = listCodecForStringCompatibility
 
+instance (HasCodec a) => HasCodec (DList a) where
+  codec = dimapCodec DList.fromList DList.toList (codec :: JSONCodec [a])
+
 instance (HasCodec a) => HasCodec (NonEmpty a) where
   codec = nonEmptyCodec codec
+
+instance (HasCodec a) => HasCodec (DNonEmpty a) where
+  codec = dimapCodec DNonEmpty.fromNonEmpty DNonEmpty.toNonEmpty (codec :: JSONCodec (NonEmpty a))
 
 instance (Ord a, HasCodec a) => HasCodec (Set a) where
   codec = dimapCodec S.fromList S.toList codec
