diff --git a/src/Data/Binary/Generic.hs b/src/Data/Binary/Generic.hs index 7282ff6dc1cc074a677668090d6d6e80eb163616..feb85d7377b8cf4992b49ed78a9a017d61f15174 100644 --- a/src/Data/Binary/Generic.hs +++ b/src/Data/Binary/Generic.hs @@ -3,6 +3,10 @@ {-# LANGUAGE Safe #-} {-# OPTIONS_GHC -fno-warn-orphans #-} +#if __GLASGOW_HASKELL__ >= 800 +#define HAS_DATA_KIND +#endif + ----------------------------------------------------------------------------- -- | -- Module : Data.Binary.Generic @@ -27,6 +31,9 @@ import Data.Binary.Put import Data.Bits import Data.Word import Data.Monoid ((<>)) +#ifdef HAS_DATA_KIND +import Data.Kind +#endif import GHC.Generics import Prelude -- Silence AMP warning. @@ -136,7 +143,11 @@ instance GBinaryPut a => GSumPut (C1 c a) where class SumSize f where sumSize :: Tagged f Word64 -newtype Tagged (s :: * -> *) b = Tagged {unTagged :: b} +#ifdef HAS_DATA_KIND +newtype Tagged (s :: Type -> Type) b = Tagged {unTagged :: b} +#else +newtype Tagged (s :: * -> *) b = Tagged {unTagged :: b} +#endif instance (SumSize a, SumSize b) => SumSize (a :+: b) where sumSize = Tagged $ unTagged (sumSize :: Tagged a Word64) +