diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,12 @@
+0.3
+---
+* Added support for `cereal`.
+
+0.2
+---
+* Added an `Enum` instance.
+* Added `sum` to calculate using the `log-sum-exp` trick.
+
 0.1.0.1
 -------
 * Minor packaging changes
diff --git a/log-domain.cabal b/log-domain.cabal
--- a/log-domain.cabal
+++ b/log-domain.cabal
@@ -1,6 +1,6 @@
 name:          log-domain
 category:      Numeric
-version:       0.2
+version:       0.3
 license:       BSD3
 cabal-version: >= 1.8
 license-file:  LICENSE
@@ -43,6 +43,7 @@
   build-depends:
     base                      >= 4.3      && < 5,
     binary                    >= 0.5      && < 0.6,
+    cereal                    >= 0.3.5    && < 0.4,
     comonad                   >= 3        && < 4,
     deepseq                   >= 1.3      && < 1.5,
     distributive              >= 0.3      && < 1,
diff --git a/src/Numeric/Log.hs b/src/Numeric/Log.hs
--- a/src/Numeric/Log.hs
+++ b/src/Numeric/Log.hs
@@ -36,6 +36,7 @@
 import Data.SafeCopy
 import Data.Semigroup.Foldable
 import Data.Semigroup.Traversable
+import Data.Serialize as Serialize
 import Data.Traversable
 import Foreign.Ptr
 import Foreign.Storable
@@ -54,9 +55,15 @@
   readPrec = Log . log <$> step readPrec
 
 instance Binary a => Binary (Log a) where
-  put = put . runLog
+  put = Binary.put . runLog
   {-# INLINE put #-}
   get = Log <$> Binary.get
+  {-# INLINE get #-}
+
+instance Serialize a => Serialize (Log a) where
+  put = Serialize.put . runLog
+  {-# INLINE put #-}
+  get = Log <$> Serialize.get
   {-# INLINE get #-}
 
 instance Functor Log where
