{-# LANGUAGE CPP, DataKinds, TypeFamilies, TypeOperators, UndecidableInstances #-} 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