{-# LANGUAGE CPP, DataKinds, TypeFamilies, TypeOperators, UndecidableInstances #-} -- | Shim for backwards compatibility. -- -- === Warning -- -- This is an internal module: it is not subject to any versioning policy, -- breaking changes can happen at any time. -- -- If something here seems useful, please report it or create a pull request to -- export it from an external module. module Generic.Data.Internal.Compat ( readPrec1 , Div ) where import Data.Functor.Classes import GHC.TypeLits #if !MIN_VERSION_base(4,10,0) import Text.ParserCombinators.ReadPrec (ReadPrec, readS_to_Prec) import Text.Read (Read(..)) #endif #if !MIN_VERSION_base(4,10,0) readPrec1 :: (Read1 f, Read a) => ReadPrec (f a) readPrec1 = readS_to_Prec $ liftReadsPrec readsPrec readList #endif #if !MIN_VERSION_base(4,11,0) type Div m n = Div' (CmpNat m n) m n type family Div' (ord :: Ordering) (m :: Nat) (n :: Nat) :: Nat type instance Div' 'LT m n = 0 type instance Div' 'GT m n = 1 + Div (m-n) n type instance Div' 'EQ m n = 1 #endif