diff --git a/src/Data/Binary/Class.hs b/src/Data/Binary/Class.hs index a3d3878ce065c4a72282838708c1877640bc5205..975ef7e194d632f3177d6785d4c921436ad15fd5 100644 --- a/src/Data/Binary/Class.hs +++ b/src/Data/Binary/Class.hs @@ -9,6 +9,10 @@ {-# LANGUAGE PolyKinds #-} #endif +#if MIN_VERSION_base(4,15,0) +#define HAS_TYPELITS_CHAR +#endif + #if MIN_VERSION_base(4,8,0) #define HAS_NATURAL #define HAS_VOID @@ -960,11 +964,17 @@ instance Binary KindRep where instance Binary TypeLitSort where put TypeLitSymbol = putWord8 0 put TypeLitNat = putWord8 1 +#ifdef HAS_TYPELITS_CHAR + put TypeLitChar = putWord8 2 +#endif get = do tag <- getWord8 case tag of 0 -> pure TypeLitSymbol 1 -> pure TypeLitNat +#ifdef HAS_TYPELITS_CHAR + 2 -> pure TypeLitChar +#endif _ -> fail "GHCi.TH.Binary.putTypeLitSort: invalid tag" putTypeRep :: TypeRep a -> Put @@ -1044,4 +1054,3 @@ instance Binary SomeTypeRep where put (SomeTypeRep rep) = putTypeRep rep get = getSomeTypeRep #endif -