- type ConvResult a = Either ConvError a
- checkBoundsIntegral :: (Typeable a, Bounded a, Integral a) => (Rational -> a) -> Rational -> ConvResult a
- checkBoundsEnum :: (Typeable a, Bounded a, Enum a) => (Rational -> a) -> Rational -> ConvResult a
- checkInfinite :: (Typeable a, RealFloat a) => (Rational -> a) -> Rational -> ConvResult a
- data ConvError = ConvError String String String String
- mkError :: (Show a, Typeable a, Typeable b) => a -> ConvResult b
- mkError' :: (Show a, Typeable a, Typeable b) => String -> a -> ConvResult b

# Helpers of check conversion.

type ConvResult a = Either ConvError aSource

checkBoundsIntegral :: (Typeable a, Bounded a, Integral a) => (Rational -> a) -> Rational -> ConvResult aSource

checkBoundsEnum :: (Typeable a, Bounded a, Enum a) => (Rational -> a) -> Rational -> ConvResult aSource

checkInfinite :: (Typeable a, RealFloat a) => (Rational -> a) -> Rational -> ConvResult aSource