Add Binary instance for Identity, from base-4.8.0.0.
authorDaniel Díaz <dhelta.diaz@gmail.com>
Mon, 12 Mar 2018 16:14:59 +0000 (11:14 -0500)
committerDaniel Díaz <dhelta.diaz@gmail.com>
Mon, 12 Mar 2018 16:14:59 +0000 (11:14 -0500)
src/Data/Binary/Class.hs

index 4d1c436..2eed93e 100644 (file)
@@ -60,6 +60,9 @@ import Data.Monoid (mempty)
 #endif
 import qualified Data.Monoid as Monoid
 import Data.Monoid ((<>))
+#if MIN_VERSION_base(4,8,0)
+import Data.Functor.Identity (Identity (..))
+#endif
 #if MIN_VERSION_base(4,9,0)
 import qualified Data.List.NonEmpty as NE
 import qualified Data.Semigroup     as Semigroup
@@ -566,6 +569,12 @@ instance (Binary a, Binary b, Binary c, Binary d, Binary e,
 ------------------------------------------------------------------------
 -- Container types
 
+#if MIN_VERSION_base(4,8,0)
+instance Binary a => Binary (Identity a) where
+  put (Identity x) = put x
+  get = Identity <$> get
+#endif
+
 instance Binary a => Binary [a] where
     put = putList
     get = do n <- get :: Get Int