diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 0.4.8
+
+* Add some `Eq` instances [#38](https://github.com/snoyberg/mime-mail/pull/38)
+
 ## 0.4.7
 
 * `simpleMailInMemory`
diff --git a/Network/Mail/Mime.hs b/Network/Mail/Mime.hs
--- a/Network/Mail/Mime.hs
+++ b/Network/Mail/Mime.hs
@@ -75,7 +75,7 @@
 
 -- | MIME boundary between parts of a message.
 newtype Boundary = Boundary { unBoundary :: Text }
-  deriving Show
+  deriving (Eq, Show)
 instance Random Boundary where
     randomR = const random
     random = first (Boundary . T.pack) . randomString 10
@@ -114,11 +114,11 @@
     { addressName  :: Maybe Text
     , addressEmail :: Text
     }
-  deriving Show
+  deriving (Eq, Show)
 
 -- | How to encode a single part. You should use 'Base64' for binary data.
 data Encoding = None | Base64 | QuotedPrintableText | QuotedPrintableBinary
-  deriving Show
+  deriving (Eq, Show)
 
 -- | Multiple alternative representations of the same data. For example, you
 -- could provide a plain-text and HTML version of a message.
@@ -134,7 +134,7 @@
     , partHeaders :: Headers
     , partContent :: L.ByteString
     }
-  deriving Show
+  deriving (Eq, Show)
 
 type Headers = [(S.ByteString, Text)]
 type Pair = (Headers, Builder)
diff --git a/mime-mail.cabal b/mime-mail.cabal
--- a/mime-mail.cabal
+++ b/mime-mail.cabal
@@ -1,5 +1,5 @@
 Name:                mime-mail
-Version:             0.4.7
+Version:             0.4.8
 Synopsis:            Compose MIME email messages.
 description:         Hackage documentation generation is not reliable. For up to date documentation, please see: <http://www.stackage.org/package/mime-mail>.
 Homepage:            http://github.com/snoyberg/mime-mail
