convertible-1.0.0: Typeclasses and instances for converting between typesSource codeContentsIndex
Data.Convertible.Base
Portabilityportable
Stabilityprovisional
MaintainerJohn Goerzen <jgoerzen@complete.org>
Contents
The conversion process
Handling the results
Description
Synopsis
convert :: Convertible a b => a -> b
class Convertible a b where
safeConvert :: a -> ConvertResult b
type ConvertResult a = Either ConvertError a
data ConvertError = ConvertError {
convSourceValue :: String
convSourceType :: String
convDestType :: String
convErrorMessage :: String
}
convError :: (Show a, Typeable a, Typeable b) => String -> a -> ConvertResult b
prettyConvertError :: ConvertError -> String
The conversion process
convert :: Convertible a b => a -> bSource
Convert from one type of data to another. Raises an exception if there is an error with the conversion. For a function that does not raise an exception in that case, see safeConvert.
class Convertible a b whereSource
A typeclass that represents something that can be converted. A Convertible a b instance represents an a that can be converted to a b.
Methods
safeConvert :: a -> ConvertResult bSource
Convert a to b, returning Right on success and Left on error. For a simpler interface, see convert.
show/hide Instances
Convertible Char Int
Convertible Char Int
Convertible Char Int8
Convertible Char Int8
Convertible Char Int16
Convertible Char Int16
Convertible Char Int32
Convertible Char Int32
Convertible Char Int64
Convertible Char Int64
Convertible Char Integer
Convertible Char Integer
Convertible Char Word
Convertible Char Word
Convertible Char Word8
Convertible Char Word8
Convertible Char Word16
Convertible Char Word16
Convertible Char Word32
Convertible Char Word32
Convertible Char Word64
Convertible Char Word64
Convertible Double Float
Convertible Double Float
Convertible Double Int
Convertible Double Int
Convertible Double Int8
Convertible Double Int8
Convertible Double Int16
Convertible Double Int16
Convertible Double Int32
Convertible Double Int32
Convertible Double Int64
Convertible Double Int64
Convertible Double Integer
Convertible Double Integer
Convertible Double Rational
Convertible Double Rational
Convertible Double Word
Convertible Double Word
Convertible Double Word8
Convertible Double Word8
Convertible Double Word16
Convertible Double Word16
Convertible Double Word32
Convertible Double Word32
Convertible Double Word64
Convertible Double Word64
Convertible Double POSIXTime
Convertible Double POSIXTime
Convertible Double UTCTime
Convertible Double UTCTime
Convertible Float Double
Convertible Float Double
Convertible Float Int
Convertible Float Int
Convertible Float Int8
Convertible Float Int8
Convertible Float Int16
Convertible Float Int16
Convertible Float Int32
Convertible Float Int32
Convertible Float Int64
Convertible Float Int64
Convertible Float Integer
Convertible Float Integer
Convertible Float Rational
Convertible Float Rational
Convertible Float Word
Convertible Float Word
Convertible Float Word8
Convertible Float Word8
Convertible Float Word16
Convertible Float Word16
Convertible Float Word32
Convertible Float Word32
Convertible Float Word64
Convertible Float Word64
Convertible Int Char
Convertible Int Char
Convertible Int Double
Convertible Int Double
Convertible Int Float
Convertible Int Float
Convertible Int Int8
Convertible Int Int8
Convertible Int Int16
Convertible Int Int16
Convertible Int Int32
Convertible Int Int32
Convertible Int Int64
Convertible Int Int64
Convertible Int Integer
Convertible Int Integer
Convertible Int Rational
Convertible Int Rational
Convertible Int Word
Convertible Int Word
Convertible Int Word8
Convertible Int Word8
Convertible Int Word16
Convertible Int Word16
Convertible Int Word32
Convertible Int Word32
Convertible Int Word64
Convertible Int Word64
Convertible Int POSIXTime
Convertible Int POSIXTime
Convertible Int UTCTime
Convertible Int UTCTime
Convertible Int8 Char
Convertible Int8 Char
Convertible Int8 Double
Convertible Int8 Double
Convertible Int8 Float
Convertible Int8 Float
Convertible Int8 Int
Convertible Int8 Int
Convertible Int8 Int16
Convertible Int8 Int16
Convertible Int8 Int32
Convertible Int8 Int32
Convertible Int8 Int64
Convertible Int8 Int64
Convertible Int8 Integer
Convertible Int8 Integer
Convertible Int8 Rational
Convertible Int8 Rational
Convertible Int8 Word
Convertible Int8 Word
Convertible Int8 Word8
Convertible Int8 Word8
Convertible Int8 Word16
Convertible Int8 Word16
Convertible Int8 Word32
Convertible Int8 Word32
Convertible Int8 Word64
Convertible Int8 Word64
Convertible Int16 Char
Convertible Int16 Char
Convertible Int16 Double
Convertible Int16 Double
Convertible Int16 Float
Convertible Int16 Float
Convertible Int16 Int
Convertible Int16 Int
Convertible Int16 Int8
Convertible Int16 Int8
Convertible Int16 Int32
Convertible Int16 Int32
Convertible Int16 Int64
Convertible Int16 Int64
Convertible Int16 Integer
Convertible Int16 Integer
Convertible Int16 Rational
Convertible Int16 Rational
Convertible Int16 Word
Convertible Int16 Word
Convertible Int16 Word8
Convertible Int16 Word8
Convertible Int16 Word16
Convertible Int16 Word16
Convertible Int16 Word32
Convertible Int16 Word32
Convertible Int16 Word64
Convertible Int16 Word64
Convertible Int32 Char
Convertible Int32 Char
Convertible Int32 Double
Convertible Int32 Double
Convertible Int32 Float
Convertible Int32 Float
Convertible Int32 Int
Convertible Int32 Int
Convertible Int32 Int8
Convertible Int32 Int8
Convertible Int32 Int16
Convertible Int32 Int16
Convertible Int32 Int64
Convertible Int32 Int64
Convertible Int32 Integer
Convertible Int32 Integer
Convertible Int32 Rational
Convertible Int32 Rational
Convertible Int32 Word
Convertible Int32 Word
Convertible Int32 Word8
Convertible Int32 Word8
Convertible Int32 Word16
Convertible Int32 Word16
Convertible Int32 Word32
Convertible Int32 Word32
Convertible Int32 Word64
Convertible Int32 Word64
Convertible Int64 Char
Convertible Int64 Char
Convertible Int64 Double
Convertible Int64 Double
Convertible Int64 Float
Convertible Int64 Float
Convertible Int64 Int
Convertible Int64 Int
Convertible Int64 Int8
Convertible Int64 Int8
Convertible Int64 Int16
Convertible Int64 Int16
Convertible Int64 Int32
Convertible Int64 Int32
Convertible Int64 Integer
Convertible Int64 Integer
Convertible Int64 Rational
Convertible Int64 Rational
Convertible Int64 Word
Convertible Int64 Word
Convertible Int64 Word8
Convertible Int64 Word8
Convertible Int64 Word16
Convertible Int64 Word16
Convertible Int64 Word32
Convertible Int64 Word32
Convertible Int64 Word64
Convertible Int64 Word64
Convertible Integer Char
Convertible Integer Char
Convertible Integer Double
Convertible Integer Double
Convertible Integer Float
Convertible Integer Float
Convertible Integer Int
Convertible Integer Int
Convertible Integer Int8
Convertible Integer Int8
Convertible Integer Int16
Convertible Integer Int16
Convertible Integer Int32
Convertible Integer Int32
Convertible Integer Int64
Convertible Integer Int64
Convertible Integer Integer
Convertible Integer Rational
Convertible Integer Rational
Convertible Integer Word
Convertible Integer Word
Convertible Integer Word8
Convertible Integer Word8
Convertible Integer Word16
Convertible Integer Word16
Convertible Integer Word32
Convertible Integer Word32
Convertible Integer Word64
Convertible Integer Word64
Convertible Integer ClockTime
Convertible Integer ClockTime
Convertible Integer POSIXTime
Convertible Integer POSIXTime
Convertible Integer UTCTime
Convertible Integer UTCTime
Convertible Rational Double
Convertible Rational Double
Convertible Rational Float
Convertible Rational Float
Convertible Rational Int
Convertible Rational Int
Convertible Rational Int8
Convertible Rational Int8
Convertible Rational Int16
Convertible Rational Int16
Convertible Rational Int32
Convertible Rational Int32
Convertible Rational Int64
Convertible Rational Int64
Convertible Rational Integer
Convertible Rational Integer
Convertible Rational Word
Convertible Rational Word
Convertible Rational Word8
Convertible Rational Word8
Convertible Rational Word16
Convertible Rational Word16
Convertible Rational Word32
Convertible Rational Word32
Convertible Rational Word64
Convertible Rational Word64
Convertible Rational POSIXTime
Convertible Rational POSIXTime
Convertible Rational UTCTime
Convertible Rational UTCTime
Convertible Word Char
Convertible Word Char
Convertible Word Double
Convertible Word Double
Convertible Word Float
Convertible Word Float
Convertible Word Int
Convertible Word Int
Convertible Word Int8
Convertible Word Int8
Convertible Word Int16
Convertible Word Int16
Convertible Word Int32
Convertible Word Int32
Convertible Word Int64
Convertible Word Int64
Convertible Word Integer
Convertible Word Integer
Convertible Word Rational
Convertible Word Rational
Convertible Word Word8
Convertible Word Word8
Convertible Word Word16
Convertible Word Word16
Convertible Word Word32
Convertible Word Word32
Convertible Word Word64
Convertible Word Word64
Convertible Word8 Char
Convertible Word8 Char
Convertible Word8 Double
Convertible Word8 Double
Convertible Word8 Float
Convertible Word8 Float
Convertible Word8 Int
Convertible Word8 Int
Convertible Word8 Int8
Convertible Word8 Int8
Convertible Word8 Int16
Convertible Word8 Int16
Convertible Word8 Int32
Convertible Word8 Int32
Convertible Word8 Int64
Convertible Word8 Int64
Convertible Word8 Integer
Convertible Word8 Integer
Convertible Word8 Rational
Convertible Word8 Rational
Convertible Word8 Word
Convertible Word8 Word
Convertible Word8 Word16
Convertible Word8 Word16
Convertible Word8 Word32
Convertible Word8 Word32
Convertible Word8 Word64
Convertible Word8 Word64
Convertible Word16 Char
Convertible Word16 Char
Convertible Word16 Double
Convertible Word16 Double
Convertible Word16 Float
Convertible Word16 Float
Convertible Word16 Int
Convertible Word16 Int
Convertible Word16 Int8
Convertible Word16 Int8
Convertible Word16 Int16
Convertible Word16 Int16
Convertible Word16 Int32
Convertible Word16 Int32
Convertible Word16 Int64
Convertible Word16 Int64
Convertible Word16 Integer
Convertible Word16 Integer
Convertible Word16 Rational
Convertible Word16 Rational
Convertible Word16 Word
Convertible Word16 Word
Convertible Word16 Word8
Convertible Word16 Word8
Convertible Word16 Word32
Convertible Word16 Word32
Convertible Word16 Word64
Convertible Word16 Word64
Convertible Word32 Char
Convertible Word32 Char
Convertible Word32 Double
Convertible Word32 Double
Convertible Word32 Float
Convertible Word32 Float
Convertible Word32 Int
Convertible Word32 Int
Convertible Word32 Int8
Convertible Word32 Int8
Convertible Word32 Int16
Convertible Word32 Int16
Convertible Word32 Int32
Convertible Word32 Int32
Convertible Word32 Int64
Convertible Word32 Int64
Convertible Word32 Integer
Convertible Word32 Integer
Convertible Word32 Rational
Convertible Word32 Rational
Convertible Word32 Word
Convertible Word32 Word
Convertible Word32 Word8
Convertible Word32 Word8
Convertible Word32 Word16
Convertible Word32 Word16
Convertible Word32 Word64
Convertible Word32 Word64
Convertible Word64 Char
Convertible Word64 Char
Convertible Word64 Double
Convertible Word64 Double
Convertible Word64 Float
Convertible Word64 Float
Convertible Word64 Int
Convertible Word64 Int
Convertible Word64 Int8
Convertible Word64 Int8
Convertible Word64 Int16
Convertible Word64 Int16
Convertible Word64 Int32
Convertible Word64 Int32
Convertible Word64 Int64
Convertible Word64 Int64
Convertible Word64 Integer
Convertible Word64 Integer
Convertible Word64 Rational
Convertible Word64 Rational
Convertible Word64 Word
Convertible Word64 Word
Convertible Word64 Word8
Convertible Word64 Word8
Convertible Word64 Word16
Convertible Word64 Word16
Convertible Word64 Word32
Convertible Word64 Word32
Convertible TimeDiff NominalDiffTime
Convertible TimeDiff NominalDiffTime
Convertible CalendarTime ClockTime
Convertible CalendarTime ClockTime
Convertible CalendarTime ZonedTime
Convertible CalendarTime ZonedTime
Convertible CalendarTime POSIXTime
Convertible CalendarTime POSIXTime
Convertible CalendarTime UTCTime
Convertible CalendarTime UTCTime
Convertible ClockTime Integer
Convertible ClockTime Integer
Convertible ClockTime CalendarTime
Convertible ClockTime CalendarTime
Convertible ClockTime ZonedTime
Convertible ClockTime ZonedTime
Convertible ClockTime POSIXTime
Convertible ClockTime POSIXTime
Convertible ClockTime UTCTime
Convertible ClockTime UTCTime
Convertible ZonedTime CalendarTime
Convertible ZonedTime CalendarTime
Convertible ZonedTime POSIXTime
Convertible ZonedTime POSIXTime
Convertible ZonedTime UTCTime
Convertible ZonedTime UTCTime
Convertible POSIXTime Double
Convertible POSIXTime Double
Convertible POSIXTime Int
Convertible POSIXTime Int
Convertible POSIXTime Integer
Convertible POSIXTime Integer
Convertible POSIXTime Rational
Convertible POSIXTime Rational
Convertible POSIXTime CalendarTime
Convertible POSIXTime CalendarTime
Convertible POSIXTime ClockTime
Convertible POSIXTime ClockTime
Convertible POSIXTime ZonedTime
Convertible POSIXTime ZonedTime
Convertible POSIXTime UTCTime
Convertible POSIXTime UTCTime
Convertible UTCTime Double
Convertible UTCTime Double
Convertible UTCTime Int
Convertible UTCTime Int
Convertible UTCTime Integer
Convertible UTCTime Integer
Convertible UTCTime Rational
Convertible UTCTime Rational
Convertible UTCTime CalendarTime
Convertible UTCTime CalendarTime
Convertible UTCTime ClockTime
Convertible UTCTime ClockTime
Convertible UTCTime ZonedTime
Convertible UTCTime ZonedTime
Convertible UTCTime POSIXTime
Convertible UTCTime POSIXTime
Convertible NominalDiffTime TimeDiff
Convertible NominalDiffTime TimeDiff
Ord k => Convertible ([] ((,) k a)) (Map k a)
Ord k => Convertible ([] ((,) k a)) (Map k a)
Convertible (Map k a) ([] ((,) k a))
Convertible (Map k a) ([] ((,) k a))
Handling the results
type ConvertResult a = Either ConvertError aSource
The result of a safe conversion via safeConvert.
data ConvertError Source
How we indicate that there was an error.
Constructors
ConvertError
convSourceValue :: String
convSourceType :: String
convDestType :: String
convErrorMessage :: String
show/hide Instances
convError :: (Show a, Typeable a, Typeable b) => String -> a -> ConvertResult bSource
prettyConvertError :: ConvertError -> StringSource
Produced by Haddock version 2.4.2