diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
 # Changelog
 
+## [0.2.0.3] - 2023-01-31
+
+### Added
+
+* The `HasCodec Void` instance, thanks @i-am-tom!
+
 ## [0.2.0.2] - 2023-01-19
 
 ### 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.2.0.2
+version:        0.2.0.3
 synopsis:       Self-documenting encoder and decoder
 homepage:       https://github.com/NorfairKing/autodocodec#readme
 bug-reports:    https://github.com/NorfairKing/autodocodec/issues
diff --git a/src/Autodocodec/Class.hs b/src/Autodocodec/Class.hs
--- a/src/Autodocodec/Class.hs
+++ b/src/Autodocodec/Class.hs
@@ -24,6 +24,7 @@
 import Data.Text (Text)
 import qualified Data.Text.Lazy as LT
 import Data.Time
+import Data.Void
 import Data.Word
 
 -- | A class for values which have a canonical codec.
@@ -44,6 +45,9 @@
   listCodecForStringCompatibility = listCodec codec
 
   {-# MINIMAL codec #-}
+
+instance HasCodec Void where
+  codec = bimapCodec (\_ -> Left "Cannot decode a Void.") absurd ValueCodec
 
 instance HasCodec Bool where
   codec = boolCodec
