{-# OPTIONS_GHC -Wno-orphans #-}
module Data.Convertible.Instances.Num()
where
import Prelude
import Data.Convertible.Base
import Data.Convertible.Utils
import Data.Int
import Data.Word
instance Convertible Double Int where
safeConvert :: Double -> ConvertResult Int
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Int Double where
safeConvert :: Int -> ConvertResult Double
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Double Int8 where
safeConvert :: Double -> ConvertResult Int8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Int8 Double where
safeConvert :: Int8 -> ConvertResult Double
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Double Int16 where
safeConvert :: Double -> ConvertResult Int16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Int16 Double where
safeConvert :: Int16 -> ConvertResult Double
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Double Int32 where
safeConvert :: Double -> ConvertResult Int32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Int32 Double where
safeConvert :: Int32 -> ConvertResult Double
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Double Int64 where
safeConvert :: Double -> ConvertResult Int64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Int64 Double where
safeConvert :: Int64 -> ConvertResult Double
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Double Word where
safeConvert :: Double -> ConvertResult Word
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Word Double where
safeConvert :: Word -> ConvertResult Double
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Double Word8 where
safeConvert :: Double -> ConvertResult Word8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Word8 Double where
safeConvert :: Word8 -> ConvertResult Double
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Double Word16 where
safeConvert :: Double -> ConvertResult Word16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Word16 Double where
safeConvert :: Word16 -> ConvertResult Double
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Double Word32 where
safeConvert :: Double -> ConvertResult Word32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Word32 Double where
safeConvert :: Word32 -> ConvertResult Double
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Double Word64 where
safeConvert :: Double -> ConvertResult Word64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Word64 Double where
safeConvert :: Word64 -> ConvertResult Double
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Float Int where
safeConvert :: Float -> ConvertResult Int
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Int Float where
safeConvert :: Int -> ConvertResult Float
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Float Int8 where
safeConvert :: Float -> ConvertResult Int8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Int8 Float where
safeConvert :: Int8 -> ConvertResult Float
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Float Int16 where
safeConvert :: Float -> ConvertResult Int16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Int16 Float where
safeConvert :: Int16 -> ConvertResult Float
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Float Int32 where
safeConvert :: Float -> ConvertResult Int32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Int32 Float where
safeConvert :: Int32 -> ConvertResult Float
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Float Int64 where
safeConvert :: Float -> ConvertResult Int64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Int64 Float where
safeConvert :: Int64 -> ConvertResult Float
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Float Word where
safeConvert :: Float -> ConvertResult Word
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Word Float where
safeConvert :: Word -> ConvertResult Float
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Float Word8 where
safeConvert :: Float -> ConvertResult Word8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Word8 Float where
safeConvert :: Word8 -> ConvertResult Float
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Float Word16 where
safeConvert :: Float -> ConvertResult Word16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Word16 Float where
safeConvert :: Word16 -> ConvertResult Float
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Float Word32 where
safeConvert :: Float -> ConvertResult Word32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Word32 Float where
safeConvert :: Word32 -> ConvertResult Float
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Float Word64 where
safeConvert :: Float -> ConvertResult Word64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Word64 Float where
safeConvert :: Word64 -> ConvertResult Float
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Rational Int where
safeConvert :: Rational -> ConvertResult Int
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Int Rational where
safeConvert :: Int -> ConvertResult Rational
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Rational Int8 where
safeConvert :: Rational -> ConvertResult Int8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Int8 Rational where
safeConvert :: Int8 -> ConvertResult Rational
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Rational Int16 where
safeConvert :: Rational -> ConvertResult Int16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Int16 Rational where
safeConvert :: Int16 -> ConvertResult Rational
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Rational Int32 where
safeConvert :: Rational -> ConvertResult Int32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Int32 Rational where
safeConvert :: Int32 -> ConvertResult Rational
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Rational Int64 where
safeConvert :: Rational -> ConvertResult Int64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Int64 Rational where
safeConvert :: Int64 -> ConvertResult Rational
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Rational Word where
safeConvert :: Rational -> ConvertResult Word
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Word Rational where
safeConvert :: Word -> ConvertResult Rational
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Rational Word8 where
safeConvert :: Rational -> ConvertResult Word8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Word8 Rational where
safeConvert :: Word8 -> ConvertResult Rational
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Rational Word16 where
safeConvert :: Rational -> ConvertResult Word16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Word16 Rational where
safeConvert :: Word16 -> ConvertResult Rational
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Rational Word32 where
safeConvert :: Rational -> ConvertResult Word32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Word32 Rational where
safeConvert :: Word32 -> ConvertResult Rational
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Rational Word64 where
safeConvert :: Rational -> ConvertResult Word64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate)
instance Convertible Word64 Rational where
safeConvert :: Word64 -> ConvertResult Rational
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Int Int8 where
safeConvert :: Int -> ConvertResult Int8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int Int16 where
safeConvert :: Int -> ConvertResult Int16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int Int32 where
safeConvert :: Int -> ConvertResult Int32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int Int64 where
safeConvert :: Int -> ConvertResult Int64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int Word where
safeConvert :: Int -> ConvertResult Word
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int Word8 where
safeConvert :: Int -> ConvertResult Word8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int Word16 where
safeConvert :: Int -> ConvertResult Word16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int Word32 where
safeConvert :: Int -> ConvertResult Word32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int Word64 where
safeConvert :: Int -> ConvertResult Word64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int8 Int where
safeConvert :: Int8 -> ConvertResult Int
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int8 Int16 where
safeConvert :: Int8 -> ConvertResult Int16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int8 Int32 where
safeConvert :: Int8 -> ConvertResult Int32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int8 Int64 where
safeConvert :: Int8 -> ConvertResult Int64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int8 Word where
safeConvert :: Int8 -> ConvertResult Word
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int8 Word8 where
safeConvert :: Int8 -> ConvertResult Word8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int8 Word16 where
safeConvert :: Int8 -> ConvertResult Word16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int8 Word32 where
safeConvert :: Int8 -> ConvertResult Word32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int8 Word64 where
safeConvert :: Int8 -> ConvertResult Word64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int16 Int where
safeConvert :: Int16 -> ConvertResult Int
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int16 Int8 where
safeConvert :: Int16 -> ConvertResult Int8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int16 Int32 where
safeConvert :: Int16 -> ConvertResult Int32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int16 Int64 where
safeConvert :: Int16 -> ConvertResult Int64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int16 Word where
safeConvert :: Int16 -> ConvertResult Word
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int16 Word8 where
safeConvert :: Int16 -> ConvertResult Word8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int16 Word16 where
safeConvert :: Int16 -> ConvertResult Word16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int16 Word32 where
safeConvert :: Int16 -> ConvertResult Word32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int16 Word64 where
safeConvert :: Int16 -> ConvertResult Word64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int32 Int where
safeConvert :: Int32 -> ConvertResult Int
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int32 Int8 where
safeConvert :: Int32 -> ConvertResult Int8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int32 Int16 where
safeConvert :: Int32 -> ConvertResult Int16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int32 Int64 where
safeConvert :: Int32 -> ConvertResult Int64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int32 Word where
safeConvert :: Int32 -> ConvertResult Word
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int32 Word8 where
safeConvert :: Int32 -> ConvertResult Word8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int32 Word16 where
safeConvert :: Int32 -> ConvertResult Word16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int32 Word32 where
safeConvert :: Int32 -> ConvertResult Word32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int32 Word64 where
safeConvert :: Int32 -> ConvertResult Word64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int64 Int where
safeConvert :: Int64 -> ConvertResult Int
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int64 Int8 where
safeConvert :: Int64 -> ConvertResult Int8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int64 Int16 where
safeConvert :: Int64 -> ConvertResult Int16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int64 Int32 where
safeConvert :: Int64 -> ConvertResult Int32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int64 Word where
safeConvert :: Int64 -> ConvertResult Word
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int64 Word8 where
safeConvert :: Int64 -> ConvertResult Word8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int64 Word16 where
safeConvert :: Int64 -> ConvertResult Word16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int64 Word32 where
safeConvert :: Int64 -> ConvertResult Word32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int64 Word64 where
safeConvert :: Int64 -> ConvertResult Word64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word Int where
safeConvert :: Word -> ConvertResult Int
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word Int8 where
safeConvert :: Word -> ConvertResult Int8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word Int16 where
safeConvert :: Word -> ConvertResult Int16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word Int32 where
safeConvert :: Word -> ConvertResult Int32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word Int64 where
safeConvert :: Word -> ConvertResult Int64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word Word8 where
safeConvert :: Word -> ConvertResult Word8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word Word16 where
safeConvert :: Word -> ConvertResult Word16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word Word32 where
safeConvert :: Word -> ConvertResult Word32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word Word64 where
safeConvert :: Word -> ConvertResult Word64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word8 Int where
safeConvert :: Word8 -> ConvertResult Int
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word8 Int8 where
safeConvert :: Word8 -> ConvertResult Int8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word8 Int16 where
safeConvert :: Word8 -> ConvertResult Int16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word8 Int32 where
safeConvert :: Word8 -> ConvertResult Int32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word8 Int64 where
safeConvert :: Word8 -> ConvertResult Int64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word8 Word where
safeConvert :: Word8 -> ConvertResult Word
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word8 Word16 where
safeConvert :: Word8 -> ConvertResult Word16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word8 Word32 where
safeConvert :: Word8 -> ConvertResult Word32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word8 Word64 where
safeConvert :: Word8 -> ConvertResult Word64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word16 Int where
safeConvert :: Word16 -> ConvertResult Int
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word16 Int8 where
safeConvert :: Word16 -> ConvertResult Int8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word16 Int16 where
safeConvert :: Word16 -> ConvertResult Int16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word16 Int32 where
safeConvert :: Word16 -> ConvertResult Int32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word16 Int64 where
safeConvert :: Word16 -> ConvertResult Int64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word16 Word where
safeConvert :: Word16 -> ConvertResult Word
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word16 Word8 where
safeConvert :: Word16 -> ConvertResult Word8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word16 Word32 where
safeConvert :: Word16 -> ConvertResult Word32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word16 Word64 where
safeConvert :: Word16 -> ConvertResult Word64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word32 Int where
safeConvert :: Word32 -> ConvertResult Int
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word32 Int8 where
safeConvert :: Word32 -> ConvertResult Int8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word32 Int16 where
safeConvert :: Word32 -> ConvertResult Int16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word32 Int32 where
safeConvert :: Word32 -> ConvertResult Int32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word32 Int64 where
safeConvert :: Word32 -> ConvertResult Int64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word32 Word where
safeConvert :: Word32 -> ConvertResult Word
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word32 Word8 where
safeConvert :: Word32 -> ConvertResult Word8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word32 Word16 where
safeConvert :: Word32 -> ConvertResult Word16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word32 Word64 where
safeConvert :: Word32 -> ConvertResult Word64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word64 Int where
safeConvert :: Word64 -> ConvertResult Int
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word64 Int8 where
safeConvert :: Word64 -> ConvertResult Int8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word64 Int16 where
safeConvert :: Word64 -> ConvertResult Int16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word64 Int32 where
safeConvert :: Word64 -> ConvertResult Int32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word64 Int64 where
safeConvert :: Word64 -> ConvertResult Int64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word64 Word where
safeConvert :: Word64 -> ConvertResult Word
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word64 Word8 where
safeConvert :: Word64 -> ConvertResult Word8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word64 Word16 where
safeConvert :: Word64 -> ConvertResult Word16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word64 Word32 where
safeConvert :: Word64 -> ConvertResult Word32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Integer Int where
safeConvert :: Integer -> ConvertResult Int
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int Integer where
safeConvert :: Int -> ConvertResult Integer
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Integer Int8 where
safeConvert :: Integer -> ConvertResult Int8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int8 Integer where
safeConvert :: Int8 -> ConvertResult Integer
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Integer Int16 where
safeConvert :: Integer -> ConvertResult Int16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int16 Integer where
safeConvert :: Int16 -> ConvertResult Integer
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Integer Int32 where
safeConvert :: Integer -> ConvertResult Int32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int32 Integer where
safeConvert :: Int32 -> ConvertResult Integer
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Integer Int64 where
safeConvert :: Integer -> ConvertResult Int64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Int64 Integer where
safeConvert :: Int64 -> ConvertResult Integer
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Integer Word where
safeConvert :: Integer -> ConvertResult Word
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word Integer where
safeConvert :: Word -> ConvertResult Integer
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Integer Word8 where
safeConvert :: Integer -> ConvertResult Word8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word8 Integer where
safeConvert :: Word8 -> ConvertResult Integer
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Integer Word16 where
safeConvert :: Integer -> ConvertResult Word16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word16 Integer where
safeConvert :: Word16 -> ConvertResult Integer
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Integer Word32 where
safeConvert :: Integer -> ConvertResult Word32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word32 Integer where
safeConvert :: Word32 -> ConvertResult Integer
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Integer Word64 where
safeConvert :: Integer -> ConvertResult Word64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Word64 Integer where
safeConvert :: Word64 -> ConvertResult Integer
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Integer Double where
safeConvert :: Integer -> ConvertResult Double
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Integer Float where
safeConvert :: Integer -> ConvertResult Float
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Integer Rational where
safeConvert :: Integer -> ConvertResult Rational
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral
instance Convertible Double Integer where
safeConvert :: Double -> ConvertResult Integer
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate
instance Convertible Float Integer where
safeConvert :: Float -> ConvertResult Integer
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate
instance Convertible Rational Integer where
safeConvert :: Rational -> ConvertResult Integer
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (RealFrac a, Integral b) => a -> b
truncate
instance Convertible Float Double where
safeConvert :: Float -> ConvertResult Double
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Real a, Fractional b) => a -> b
realToFrac
instance Convertible Double Float where
safeConvert :: Double -> ConvertResult Float
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Real a, Fractional b) => a -> b
realToFrac
instance Convertible Float Rational where
safeConvert :: Float -> ConvertResult Rational
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Real a => a -> Rational
toRational
instance Convertible Rational Float where
safeConvert :: Rational -> ConvertResult Float
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Fractional a => Rational -> a
fromRational
instance Convertible Double Rational where
safeConvert :: Double -> ConvertResult Rational
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Real a => a -> Rational
toRational
instance Convertible Rational Double where
safeConvert :: Rational -> ConvertResult Double
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Fractional a => Rational -> a
fromRational
instance Convertible Char Integer where
safeConvert :: Char -> ConvertResult Integer
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Enum a => a -> Int
fromEnum
instance Convertible Integer Char where
safeConvert :: Integer -> ConvertResult Char
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Enum a => Int -> a
toEnum forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Char Int where
safeConvert :: Char -> ConvertResult Int
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Enum a => a -> Int
fromEnum)
instance Convertible Int Char where
safeConvert :: Int -> ConvertResult Char
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Enum a => Int -> a
toEnum forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Char Int8 where
safeConvert :: Char -> ConvertResult Int8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Enum a => a -> Int
fromEnum)
instance Convertible Int8 Char where
safeConvert :: Int8 -> ConvertResult Char
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Enum a => Int -> a
toEnum forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Char Int16 where
safeConvert :: Char -> ConvertResult Int16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Enum a => a -> Int
fromEnum)
instance Convertible Int16 Char where
safeConvert :: Int16 -> ConvertResult Char
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Enum a => Int -> a
toEnum forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Char Int32 where
safeConvert :: Char -> ConvertResult Int32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Enum a => a -> Int
fromEnum)
instance Convertible Int32 Char where
safeConvert :: Int32 -> ConvertResult Char
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Enum a => Int -> a
toEnum forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Char Int64 where
safeConvert :: Char -> ConvertResult Int64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Enum a => a -> Int
fromEnum)
instance Convertible Int64 Char where
safeConvert :: Int64 -> ConvertResult Char
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Enum a => Int -> a
toEnum forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Char Word where
safeConvert :: Char -> ConvertResult Word
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Enum a => a -> Int
fromEnum)
instance Convertible Word Char where
safeConvert :: Word -> ConvertResult Char
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Enum a => Int -> a
toEnum forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Char Word8 where
safeConvert :: Char -> ConvertResult Word8
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Enum a => a -> Int
fromEnum)
instance Convertible Word8 Char where
safeConvert :: Word8 -> ConvertResult Char
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Enum a => Int -> a
toEnum forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Char Word16 where
safeConvert :: Char -> ConvertResult Word16
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Enum a => a -> Int
fromEnum)
instance Convertible Word16 Char where
safeConvert :: Word16 -> ConvertResult Char
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Enum a => Int -> a
toEnum forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Char Word32 where
safeConvert :: Char -> ConvertResult Word32
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Enum a => a -> Int
fromEnum)
instance Convertible Word32 Char where
safeConvert :: Word32 -> ConvertResult Char
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Enum a => Int -> a
toEnum forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Char Word64 where
safeConvert :: Char -> ConvertResult Word64
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Enum a => a -> Int
fromEnum)
instance Convertible Word64 Char where
safeConvert :: Word64 -> ConvertResult Char
safeConvert = forall a b.
(Ord a, Bounded b, Show a, Show b, Convertible a Integer,
Convertible b Integer, Typeable a, Typeable b) =>
(a -> ConvertResult b) -> a -> ConvertResult b
boundedConversion (forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Enum a => Int -> a
toEnum forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral)
instance Convertible Integer Integer where
safeConvert :: Integer -> ConvertResult Integer
safeConvert = forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. a -> a
id