diff --git a/src/Data/Binary/Class.hs b/src/Data/Binary/Class.hs index 4d1c436fcf9375a4e8dcac48a4e8be135e6e3155..2eed93e065a10208a95a47cb96fe74f72c07a850 100644 --- a/src/Data/Binary/Class.hs +++ b/src/Data/Binary/Class.hs @@ -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