module Types.Data.Num
( module Types.Data.Num.Ops
, module Types.Data.Num.Decimal
#if __GLASGOW_HASKELL__ >= 704 || __GLASGOW_HASKELL__ < 700
, reifyIntegralD
, reifyPositiveD
, reifyNegativeD
#endif
) where
import Types.Data.Num.Ops
import Types.Data.Num.Decimal
#if __GLASGOW_HASKELL__ >= 704 || __GLASGOW_HASKELL__ < 700
#if __GLASGOW_HASKELL__ >= 704
reifyIntegralD :: Integer -> (forall s. (IntegerT s, Repr s ~ Decimal) => s -> a) -> a
#endif
reifyIntegralD = reifyIntegral decimal
#if __GLASGOW_HASKELL__ >= 704
reifyPositiveD :: Integer -> (forall s. (PositiveT s, Repr s ~ Decimal) => s -> a) -> Maybe a
#endif
reifyPositiveD = reifyPositive decimal
#if __GLASGOW_HASKELL__ >= 704
reifyNegativeD :: Integer -> (forall s. (NegativeT s, Repr s ~ Decimal) => s -> a) -> Maybe a
#endif
reifyNegativeD = reifyNegative decimal
#endif