convertible-1.0.0: Typeclasses and instances for converting between types
Source code
Contents
Index
Data.Convertible.Base
Portability
portable
Stability
provisional
Maintainer
John 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 -> b
Source
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
where
Source
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
b
Source
Convert
a
to
b
, returning Right on success and Left on error. For a simpler interface, see
convert
.
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
a
Source
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
Instances
Eq
ConvertError
Read
ConvertError
Show
ConvertError
Error
ConvertError
convError
:: (
Show
a,
Typeable
a,
Typeable
b) =>
String
-> a ->
ConvertResult
b
Source
prettyConvertError
::
ConvertError
->
String
Source
Produced by
Haddock
version 2.4.2