-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/

-- | Typeclasses and instances for converting between types
--   
--   convertible provides a typeclass with a single function that is
--   designed to help convert between different types: numeric values,
--   dates and times, and the like. The conversions perform bounds checking
--   and return a pure Either value. This means that you need not remember
--   which specific function performs the conversion you desire.
--   
--   Also included in the package are optional instances that provide
--   conversion for various numeric and time types, as well as utilities
--   for writing your own instances.
--   
--   Finally, there is a function that will raise an exception on
--   bounds-checking violation, or return a bare value otherwise,
--   implemented in terms of the safer function described above.
--   
--   Convertible is also used by HDBC 2.0 for handling marshalling of data
--   to and from databases.
--   
--   Convertible is backed by an extensive test suite and passes tests on
--   GHC and Hugs.
@package convertible
@version 1.0.11.1

module Data.Convertible.Base

-- | 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.
convert :: Convertible a b => a -> b

-- | A typeclass that represents something that can be converted. A
--   Convertible a b instance represents an a that can be
--   converted to a b.
class Convertible a b
safeConvert :: Convertible a b => a -> ConvertResult b

-- | The result of a safe conversion via safeConvert.
type ConvertResult a = Either ConvertError a

-- | How we indicate that there was an error.
data ConvertError
ConvertError :: String -> String -> String -> String -> ConvertError
convSourceValue :: ConvertError -> String
convSourceType :: ConvertError -> String
convDestType :: ConvertError -> String
convErrorMessage :: ConvertError -> String
convError :: (Show a, Typeable a, Typeable b) => String -> a -> ConvertResult b
prettyConvertError :: ConvertError -> String
instance Eq ConvertError
instance Read ConvertError
instance Show ConvertError
instance Error ConvertError

module Data.Convertible.Utils

-- | Utility function to perform bounds checking as part of a conversion.
--   
--   Does this be examining the bounds of the destination type, converting
--   to the type of the source via safeConvert, comparing to the
--   source value. Results in an error if the conversion is out of bounds.
boundedConversion :: (Ord a, Bounded b, Show a, Show b, Convertible a Integer, Convertible b Integer, Typeable a, Typeable b) => (a -> ConvertResult b) -> a -> ConvertResult b

-- | Useful for defining Typeable instances. Example:
--   
--   
--   instance Typeable TimeOfDay where
--       typeOf _ = mkTypeName "TimeOfDay"
--   
mkTypeName :: String -> TypeRep

-- | Useful for defining conversions that are implemented in terms of other
--   conversions via an intermediary type. Instead of:
--   
--   
--   instance Convertible CalendarTime POSIXTime where
--       safeConvert a = do r <- safeConvert a
--                          safeConvert (r :: ClockTime)
--   
--   
--   we can now write:
--   
--   
--   instance Convertible CalendarTime POSIXTime where
--       safeConvert = convertVia (undefined::ClockTime)
--   
--   
--   which does the same thing -- converts a CalendarTime to a ClockTime,
--   then a ClockTime to a POSIXTime, both using existing
--   Convertible instances.
convertVia :: (Convertible a b, Convertible b c) => b -> a -> ConvertResult c

-- | Instances to convert between Map and association list.
--   
--   Copyright (C) 2009-2011 John Goerzen jgoerzen@complete.org
--   
--   All rights reserved.
--   
--   For license and copyright information, see the file LICENSE
module Data.Convertible.Instances.Map
instance Convertible (Map k a) [(k, a)]
instance Ord k => Convertible [(k, a)] (Map k a)

-- | Numeric instances for Convertible.
--   
--   Copyright (C) 2009-2011 John Goerzen jgoerzen@complete.org
--   
--   All rights reserved.
--   
--   For license and copyright information, see the file LICENSE
--   
--   These instances perform conversion between numeric types such as
--   Double, Int, Integer, Rational, and the like. Here are some notes
--   about the conversion process:
--   
--   Conversions from floating-point types such as Double to integral types
--   are done via the truncate function. This is a somewhat
--   arbitrary decision; if you need different behavior, you will have to
--   write your own instance or manually perform the conversion.
--   
--   All conversions perform bounds checking. If a value is too large for
--   its destination type, you will get a ConvertError informing you
--   of this. Note that this behavior differs from functions in the Haskell
--   standard libraries, which will perform the conversion without error,
--   but give you garbage in the end.
--   
--   Conversions do not perform precision checking; loss of precision is
--   implied with certain conversions (for instance, Double to Float) and
--   this is not an error.
module Data.Convertible.Instances.Num
instance Convertible Integer Integer
instance Convertible Word64 Char
instance Convertible Char Word64
instance Convertible Word32 Char
instance Convertible Char Word32
instance Convertible Word16 Char
instance Convertible Char Word16
instance Convertible Word8 Char
instance Convertible Char Word8
instance Convertible Word Char
instance Convertible Char Word
instance Convertible Int64 Char
instance Convertible Char Int64
instance Convertible Int32 Char
instance Convertible Char Int32
instance Convertible Int16 Char
instance Convertible Char Int16
instance Convertible Int8 Char
instance Convertible Char Int8
instance Convertible Int Char
instance Convertible Char Int
instance Convertible Integer Char
instance Convertible Char Integer
instance Convertible Rational Double
instance Convertible Double Rational
instance Convertible Rational Float
instance Convertible Float Rational
instance Convertible Double Float
instance Convertible Float Double
instance Convertible Rational Integer
instance Convertible Float Integer
instance Convertible Double Integer
instance Convertible Integer Rational
instance Convertible Integer Float
instance Convertible Integer Double
instance Convertible Word64 Integer
instance Convertible Integer Word64
instance Convertible Word32 Integer
instance Convertible Integer Word32
instance Convertible Word16 Integer
instance Convertible Integer Word16
instance Convertible Word8 Integer
instance Convertible Integer Word8
instance Convertible Word Integer
instance Convertible Integer Word
instance Convertible Int64 Integer
instance Convertible Integer Int64
instance Convertible Int32 Integer
instance Convertible Integer Int32
instance Convertible Int16 Integer
instance Convertible Integer Int16
instance Convertible Int8 Integer
instance Convertible Integer Int8
instance Convertible Int Integer
instance Convertible Integer Int
instance Convertible Word64 Word32
instance Convertible Word64 Word16
instance Convertible Word64 Word8
instance Convertible Word64 Word
instance Convertible Word64 Int64
instance Convertible Word64 Int32
instance Convertible Word64 Int16
instance Convertible Word64 Int8
instance Convertible Word64 Int
instance Convertible Word32 Word64
instance Convertible Word32 Word16
instance Convertible Word32 Word8
instance Convertible Word32 Word
instance Convertible Word32 Int64
instance Convertible Word32 Int32
instance Convertible Word32 Int16
instance Convertible Word32 Int8
instance Convertible Word32 Int
instance Convertible Word16 Word64
instance Convertible Word16 Word32
instance Convertible Word16 Word8
instance Convertible Word16 Word
instance Convertible Word16 Int64
instance Convertible Word16 Int32
instance Convertible Word16 Int16
instance Convertible Word16 Int8
instance Convertible Word16 Int
instance Convertible Word8 Word64
instance Convertible Word8 Word32
instance Convertible Word8 Word16
instance Convertible Word8 Word
instance Convertible Word8 Int64
instance Convertible Word8 Int32
instance Convertible Word8 Int16
instance Convertible Word8 Int8
instance Convertible Word8 Int
instance Convertible Word Word64
instance Convertible Word Word32
instance Convertible Word Word16
instance Convertible Word Word8
instance Convertible Word Int64
instance Convertible Word Int32
instance Convertible Word Int16
instance Convertible Word Int8
instance Convertible Word Int
instance Convertible Int64 Word64
instance Convertible Int64 Word32
instance Convertible Int64 Word16
instance Convertible Int64 Word8
instance Convertible Int64 Word
instance Convertible Int64 Int32
instance Convertible Int64 Int16
instance Convertible Int64 Int8
instance Convertible Int64 Int
instance Convertible Int32 Word64
instance Convertible Int32 Word32
instance Convertible Int32 Word16
instance Convertible Int32 Word8
instance Convertible Int32 Word
instance Convertible Int32 Int64
instance Convertible Int32 Int16
instance Convertible Int32 Int8
instance Convertible Int32 Int
instance Convertible Int16 Word64
instance Convertible Int16 Word32
instance Convertible Int16 Word16
instance Convertible Int16 Word8
instance Convertible Int16 Word
instance Convertible Int16 Int64
instance Convertible Int16 Int32
instance Convertible Int16 Int8
instance Convertible Int16 Int
instance Convertible Int8 Word64
instance Convertible Int8 Word32
instance Convertible Int8 Word16
instance Convertible Int8 Word8
instance Convertible Int8 Word
instance Convertible Int8 Int64
instance Convertible Int8 Int32
instance Convertible Int8 Int16
instance Convertible Int8 Int
instance Convertible Int Word64
instance Convertible Int Word32
instance Convertible Int Word16
instance Convertible Int Word8
instance Convertible Int Word
instance Convertible Int Int64
instance Convertible Int Int32
instance Convertible Int Int16
instance Convertible Int Int8
instance Convertible Word64 Rational
instance Convertible Rational Word64
instance Convertible Word32 Rational
instance Convertible Rational Word32
instance Convertible Word16 Rational
instance Convertible Rational Word16
instance Convertible Word8 Rational
instance Convertible Rational Word8
instance Convertible Word Rational
instance Convertible Rational Word
instance Convertible Int64 Rational
instance Convertible Rational Int64
instance Convertible Int32 Rational
instance Convertible Rational Int32
instance Convertible Int16 Rational
instance Convertible Rational Int16
instance Convertible Int8 Rational
instance Convertible Rational Int8
instance Convertible Int Rational
instance Convertible Rational Int
instance Convertible Word64 Float
instance Convertible Float Word64
instance Convertible Word32 Float
instance Convertible Float Word32
instance Convertible Word16 Float
instance Convertible Float Word16
instance Convertible Word8 Float
instance Convertible Float Word8
instance Convertible Word Float
instance Convertible Float Word
instance Convertible Int64 Float
instance Convertible Float Int64
instance Convertible Int32 Float
instance Convertible Float Int32
instance Convertible Int16 Float
instance Convertible Float Int16
instance Convertible Int8 Float
instance Convertible Float Int8
instance Convertible Int Float
instance Convertible Float Int
instance Convertible Word64 Double
instance Convertible Double Word64
instance Convertible Word32 Double
instance Convertible Double Word32
instance Convertible Word16 Double
instance Convertible Double Word16
instance Convertible Word8 Double
instance Convertible Double Word8
instance Convertible Word Double
instance Convertible Double Word
instance Convertible Int64 Double
instance Convertible Double Int64
instance Convertible Int32 Double
instance Convertible Double Int32
instance Convertible Int16 Double
instance Convertible Double Int16
instance Convertible Int8 Double
instance Convertible Double Int8
instance Convertible Int Double
instance Convertible Double Int

-- | Numeric instances for Convertible for C types. See comments in
--   Data.Convertible.Instances.Num.
--   
--   Copyright (C) 2009-2011 John Goerzen jgoerzen@complete.org
--   
--   All rights reserved.
--   
--   For license and copyright information, see the file LICENSE
module Data.Convertible.Instances.C
instance Convertible Char CULLong
instance Convertible CULLong Char
instance Convertible Char CLLong
instance Convertible CLLong Char
instance Convertible Char CWchar
instance Convertible CWchar Char
instance Convertible Char CSize
instance Convertible CSize Char
instance Convertible Char CULong
instance Convertible CULong Char
instance Convertible Char CLong
instance Convertible CLong Char
instance Convertible Char CUInt
instance Convertible CUInt Char
instance Convertible Char CInt
instance Convertible CInt Char
instance Convertible Char CUShort
instance Convertible CUShort Char
instance Convertible Char CShort
instance Convertible CShort Char
instance Convertible Char CUChar
instance Convertible CUChar Char
instance Convertible Char CSChar
instance Convertible CSChar Char
instance Convertible Char CChar
instance Convertible CChar Char
instance Convertible Integer CULLong
instance Convertible CULLong Integer
instance Convertible Integer CLLong
instance Convertible CLLong Integer
instance Convertible Integer CWchar
instance Convertible CWchar Integer
instance Convertible Integer CSize
instance Convertible CSize Integer
instance Convertible Integer CULong
instance Convertible CULong Integer
instance Convertible Integer CLong
instance Convertible CLong Integer
instance Convertible Integer CUInt
instance Convertible CUInt Integer
instance Convertible Integer CInt
instance Convertible CInt Integer
instance Convertible Integer CUShort
instance Convertible CUShort Integer
instance Convertible Integer CShort
instance Convertible CShort Integer
instance Convertible Integer CUChar
instance Convertible CUChar Integer
instance Convertible Integer CSChar
instance Convertible CSChar Integer
instance Convertible Integer CChar
instance Convertible CChar Integer
instance Convertible Integer CDouble
instance Convertible CDouble Integer
instance Convertible Integer CFloat
instance Convertible CFloat Integer
instance Convertible CDouble CFloat
instance Convertible CFloat CDouble
instance Convertible CULLong CLLong
instance Convertible CULLong CWchar
instance Convertible CULLong CSize
instance Convertible CULLong CULong
instance Convertible CULLong CLong
instance Convertible CULLong CUInt
instance Convertible CULLong CInt
instance Convertible CULLong CUShort
instance Convertible CULLong CShort
instance Convertible CULLong CUChar
instance Convertible CULLong CSChar
instance Convertible CULLong CChar
instance Convertible CLLong CULLong
instance Convertible CLLong CWchar
instance Convertible CLLong CSize
instance Convertible CLLong CULong
instance Convertible CLLong CLong
instance Convertible CLLong CUInt
instance Convertible CLLong CInt
instance Convertible CLLong CUShort
instance Convertible CLLong CShort
instance Convertible CLLong CUChar
instance Convertible CLLong CSChar
instance Convertible CLLong CChar
instance Convertible CWchar CULLong
instance Convertible CWchar CLLong
instance Convertible CWchar CSize
instance Convertible CWchar CULong
instance Convertible CWchar CLong
instance Convertible CWchar CUInt
instance Convertible CWchar CInt
instance Convertible CWchar CUShort
instance Convertible CWchar CShort
instance Convertible CWchar CUChar
instance Convertible CWchar CSChar
instance Convertible CWchar CChar
instance Convertible CSize CULLong
instance Convertible CSize CLLong
instance Convertible CSize CWchar
instance Convertible CSize CULong
instance Convertible CSize CLong
instance Convertible CSize CUInt
instance Convertible CSize CInt
instance Convertible CSize CUShort
instance Convertible CSize CShort
instance Convertible CSize CUChar
instance Convertible CSize CSChar
instance Convertible CSize CChar
instance Convertible CULong CULLong
instance Convertible CULong CLLong
instance Convertible CULong CWchar
instance Convertible CULong CSize
instance Convertible CULong CLong
instance Convertible CULong CUInt
instance Convertible CULong CInt
instance Convertible CULong CUShort
instance Convertible CULong CShort
instance Convertible CULong CUChar
instance Convertible CULong CSChar
instance Convertible CULong CChar
instance Convertible CLong CULLong
instance Convertible CLong CLLong
instance Convertible CLong CWchar
instance Convertible CLong CSize
instance Convertible CLong CULong
instance Convertible CLong CUInt
instance Convertible CLong CInt
instance Convertible CLong CUShort
instance Convertible CLong CShort
instance Convertible CLong CUChar
instance Convertible CLong CSChar
instance Convertible CLong CChar
instance Convertible CUInt CULLong
instance Convertible CUInt CLLong
instance Convertible CUInt CWchar
instance Convertible CUInt CSize
instance Convertible CUInt CULong
instance Convertible CUInt CLong
instance Convertible CUInt CInt
instance Convertible CUInt CUShort
instance Convertible CUInt CShort
instance Convertible CUInt CUChar
instance Convertible CUInt CSChar
instance Convertible CUInt CChar
instance Convertible CInt CULLong
instance Convertible CInt CLLong
instance Convertible CInt CWchar
instance Convertible CInt CSize
instance Convertible CInt CULong
instance Convertible CInt CLong
instance Convertible CInt CUInt
instance Convertible CInt CUShort
instance Convertible CInt CShort
instance Convertible CInt CUChar
instance Convertible CInt CSChar
instance Convertible CInt CChar
instance Convertible CUShort CULLong
instance Convertible CUShort CLLong
instance Convertible CUShort CWchar
instance Convertible CUShort CSize
instance Convertible CUShort CULong
instance Convertible CUShort CLong
instance Convertible CUShort CUInt
instance Convertible CUShort CInt
instance Convertible CUShort CShort
instance Convertible CUShort CUChar
instance Convertible CUShort CSChar
instance Convertible CUShort CChar
instance Convertible CShort CULLong
instance Convertible CShort CLLong
instance Convertible CShort CWchar
instance Convertible CShort CSize
instance Convertible CShort CULong
instance Convertible CShort CLong
instance Convertible CShort CUInt
instance Convertible CShort CInt
instance Convertible CShort CUShort
instance Convertible CShort CUChar
instance Convertible CShort CSChar
instance Convertible CShort CChar
instance Convertible CUChar CULLong
instance Convertible CUChar CLLong
instance Convertible CUChar CWchar
instance Convertible CUChar CSize
instance Convertible CUChar CULong
instance Convertible CUChar CLong
instance Convertible CUChar CUInt
instance Convertible CUChar CInt
instance Convertible CUChar CUShort
instance Convertible CUChar CShort
instance Convertible CUChar CSChar
instance Convertible CUChar CChar
instance Convertible CSChar CULLong
instance Convertible CSChar CLLong
instance Convertible CSChar CWchar
instance Convertible CSChar CSize
instance Convertible CSChar CULong
instance Convertible CSChar CLong
instance Convertible CSChar CUInt
instance Convertible CSChar CInt
instance Convertible CSChar CUShort
instance Convertible CSChar CShort
instance Convertible CSChar CUChar
instance Convertible CSChar CChar
instance Convertible CChar CULLong
instance Convertible CChar CLLong
instance Convertible CChar CWchar
instance Convertible CChar CSize
instance Convertible CChar CULong
instance Convertible CChar CLong
instance Convertible CChar CUInt
instance Convertible CChar CInt
instance Convertible CChar CUShort
instance Convertible CChar CShort
instance Convertible CChar CUChar
instance Convertible CChar CSChar
instance Convertible Word64 CULLong
instance Convertible CULLong Word64
instance Convertible Word32 CULLong
instance Convertible CULLong Word32
instance Convertible Word16 CULLong
instance Convertible CULLong Word16
instance Convertible Word8 CULLong
instance Convertible CULLong Word8
instance Convertible Word CULLong
instance Convertible CULLong Word
instance Convertible Int64 CULLong
instance Convertible CULLong Int64
instance Convertible Int32 CULLong
instance Convertible CULLong Int32
instance Convertible Int16 CULLong
instance Convertible CULLong Int16
instance Convertible Int8 CULLong
instance Convertible CULLong Int8
instance Convertible Int CULLong
instance Convertible CULLong Int
instance Convertible Word64 CLLong
instance Convertible CLLong Word64
instance Convertible Word32 CLLong
instance Convertible CLLong Word32
instance Convertible Word16 CLLong
instance Convertible CLLong Word16
instance Convertible Word8 CLLong
instance Convertible CLLong Word8
instance Convertible Word CLLong
instance Convertible CLLong Word
instance Convertible Int64 CLLong
instance Convertible CLLong Int64
instance Convertible Int32 CLLong
instance Convertible CLLong Int32
instance Convertible Int16 CLLong
instance Convertible CLLong Int16
instance Convertible Int8 CLLong
instance Convertible CLLong Int8
instance Convertible Int CLLong
instance Convertible CLLong Int
instance Convertible Word64 CWchar
instance Convertible CWchar Word64
instance Convertible Word32 CWchar
instance Convertible CWchar Word32
instance Convertible Word16 CWchar
instance Convertible CWchar Word16
instance Convertible Word8 CWchar
instance Convertible CWchar Word8
instance Convertible Word CWchar
instance Convertible CWchar Word
instance Convertible Int64 CWchar
instance Convertible CWchar Int64
instance Convertible Int32 CWchar
instance Convertible CWchar Int32
instance Convertible Int16 CWchar
instance Convertible CWchar Int16
instance Convertible Int8 CWchar
instance Convertible CWchar Int8
instance Convertible Int CWchar
instance Convertible CWchar Int
instance Convertible Word64 CSize
instance Convertible CSize Word64
instance Convertible Word32 CSize
instance Convertible CSize Word32
instance Convertible Word16 CSize
instance Convertible CSize Word16
instance Convertible Word8 CSize
instance Convertible CSize Word8
instance Convertible Word CSize
instance Convertible CSize Word
instance Convertible Int64 CSize
instance Convertible CSize Int64
instance Convertible Int32 CSize
instance Convertible CSize Int32
instance Convertible Int16 CSize
instance Convertible CSize Int16
instance Convertible Int8 CSize
instance Convertible CSize Int8
instance Convertible Int CSize
instance Convertible CSize Int
instance Convertible Word64 CULong
instance Convertible CULong Word64
instance Convertible Word32 CULong
instance Convertible CULong Word32
instance Convertible Word16 CULong
instance Convertible CULong Word16
instance Convertible Word8 CULong
instance Convertible CULong Word8
instance Convertible Word CULong
instance Convertible CULong Word
instance Convertible Int64 CULong
instance Convertible CULong Int64
instance Convertible Int32 CULong
instance Convertible CULong Int32
instance Convertible Int16 CULong
instance Convertible CULong Int16
instance Convertible Int8 CULong
instance Convertible CULong Int8
instance Convertible Int CULong
instance Convertible CULong Int
instance Convertible Word64 CLong
instance Convertible CLong Word64
instance Convertible Word32 CLong
instance Convertible CLong Word32
instance Convertible Word16 CLong
instance Convertible CLong Word16
instance Convertible Word8 CLong
instance Convertible CLong Word8
instance Convertible Word CLong
instance Convertible CLong Word
instance Convertible Int64 CLong
instance Convertible CLong Int64
instance Convertible Int32 CLong
instance Convertible CLong Int32
instance Convertible Int16 CLong
instance Convertible CLong Int16
instance Convertible Int8 CLong
instance Convertible CLong Int8
instance Convertible Int CLong
instance Convertible CLong Int
instance Convertible Word64 CUInt
instance Convertible CUInt Word64
instance Convertible Word32 CUInt
instance Convertible CUInt Word32
instance Convertible Word16 CUInt
instance Convertible CUInt Word16
instance Convertible Word8 CUInt
instance Convertible CUInt Word8
instance Convertible Word CUInt
instance Convertible CUInt Word
instance Convertible Int64 CUInt
instance Convertible CUInt Int64
instance Convertible Int32 CUInt
instance Convertible CUInt Int32
instance Convertible Int16 CUInt
instance Convertible CUInt Int16
instance Convertible Int8 CUInt
instance Convertible CUInt Int8
instance Convertible Int CUInt
instance Convertible CUInt Int
instance Convertible Word64 CInt
instance Convertible CInt Word64
instance Convertible Word32 CInt
instance Convertible CInt Word32
instance Convertible Word16 CInt
instance Convertible CInt Word16
instance Convertible Word8 CInt
instance Convertible CInt Word8
instance Convertible Word CInt
instance Convertible CInt Word
instance Convertible Int64 CInt
instance Convertible CInt Int64
instance Convertible Int32 CInt
instance Convertible CInt Int32
instance Convertible Int16 CInt
instance Convertible CInt Int16
instance Convertible Int8 CInt
instance Convertible CInt Int8
instance Convertible Int CInt
instance Convertible CInt Int
instance Convertible Word64 CUShort
instance Convertible CUShort Word64
instance Convertible Word32 CUShort
instance Convertible CUShort Word32
instance Convertible Word16 CUShort
instance Convertible CUShort Word16
instance Convertible Word8 CUShort
instance Convertible CUShort Word8
instance Convertible Word CUShort
instance Convertible CUShort Word
instance Convertible Int64 CUShort
instance Convertible CUShort Int64
instance Convertible Int32 CUShort
instance Convertible CUShort Int32
instance Convertible Int16 CUShort
instance Convertible CUShort Int16
instance Convertible Int8 CUShort
instance Convertible CUShort Int8
instance Convertible Int CUShort
instance Convertible CUShort Int
instance Convertible Word64 CShort
instance Convertible CShort Word64
instance Convertible Word32 CShort
instance Convertible CShort Word32
instance Convertible Word16 CShort
instance Convertible CShort Word16
instance Convertible Word8 CShort
instance Convertible CShort Word8
instance Convertible Word CShort
instance Convertible CShort Word
instance Convertible Int64 CShort
instance Convertible CShort Int64
instance Convertible Int32 CShort
instance Convertible CShort Int32
instance Convertible Int16 CShort
instance Convertible CShort Int16
instance Convertible Int8 CShort
instance Convertible CShort Int8
instance Convertible Int CShort
instance Convertible CShort Int
instance Convertible Word64 CUChar
instance Convertible CUChar Word64
instance Convertible Word32 CUChar
instance Convertible CUChar Word32
instance Convertible Word16 CUChar
instance Convertible CUChar Word16
instance Convertible Word8 CUChar
instance Convertible CUChar Word8
instance Convertible Word CUChar
instance Convertible CUChar Word
instance Convertible Int64 CUChar
instance Convertible CUChar Int64
instance Convertible Int32 CUChar
instance Convertible CUChar Int32
instance Convertible Int16 CUChar
instance Convertible CUChar Int16
instance Convertible Int8 CUChar
instance Convertible CUChar Int8
instance Convertible Int CUChar
instance Convertible CUChar Int
instance Convertible Word64 CSChar
instance Convertible CSChar Word64
instance Convertible Word32 CSChar
instance Convertible CSChar Word32
instance Convertible Word16 CSChar
instance Convertible CSChar Word16
instance Convertible Word8 CSChar
instance Convertible CSChar Word8
instance Convertible Word CSChar
instance Convertible CSChar Word
instance Convertible Int64 CSChar
instance Convertible CSChar Int64
instance Convertible Int32 CSChar
instance Convertible CSChar Int32
instance Convertible Int16 CSChar
instance Convertible CSChar Int16
instance Convertible Int8 CSChar
instance Convertible CSChar Int8
instance Convertible Int CSChar
instance Convertible CSChar Int
instance Convertible Word64 CChar
instance Convertible CChar Word64
instance Convertible Word32 CChar
instance Convertible CChar Word32
instance Convertible Word16 CChar
instance Convertible CChar Word16
instance Convertible Word8 CChar
instance Convertible CChar Word8
instance Convertible Word CChar
instance Convertible CChar Word
instance Convertible Int64 CChar
instance Convertible CChar Int64
instance Convertible Int32 CChar
instance Convertible CChar Int32
instance Convertible Int16 CChar
instance Convertible CChar Int16
instance Convertible Int8 CChar
instance Convertible CChar Int8
instance Convertible Int CChar
instance Convertible CChar Int
instance Convertible Rational CDouble
instance Convertible CDouble Rational
instance Convertible Float CDouble
instance Convertible CDouble Float
instance Convertible Double CDouble
instance Convertible CDouble Double
instance Convertible Rational CFloat
instance Convertible CFloat Rational
instance Convertible Float CFloat
instance Convertible CFloat Float
instance Convertible Double CFloat
instance Convertible CFloat Double
instance Convertible Word64 CDouble
instance Convertible CDouble Word64
instance Convertible Word32 CDouble
instance Convertible CDouble Word32
instance Convertible Word16 CDouble
instance Convertible CDouble Word16
instance Convertible Word8 CDouble
instance Convertible CDouble Word8
instance Convertible Word CDouble
instance Convertible CDouble Word
instance Convertible Int64 CDouble
instance Convertible CDouble Int64
instance Convertible Int32 CDouble
instance Convertible CDouble Int32
instance Convertible Int16 CDouble
instance Convertible CDouble Int16
instance Convertible Int8 CDouble
instance Convertible CDouble Int8
instance Convertible Int CDouble
instance Convertible CDouble Int
instance Convertible Word64 CFloat
instance Convertible CFloat Word64
instance Convertible Word32 CFloat
instance Convertible CFloat Word32
instance Convertible Word16 CFloat
instance Convertible CFloat Word16
instance Convertible Word8 CFloat
instance Convertible CFloat Word8
instance Convertible Word CFloat
instance Convertible CFloat Word
instance Convertible Int64 CFloat
instance Convertible CFloat Int64
instance Convertible Int32 CFloat
instance Convertible CFloat Int32
instance Convertible Int16 CFloat
instance Convertible CFloat Int16
instance Convertible Int8 CFloat
instance Convertible CFloat Int8
instance Convertible Int CFloat
instance Convertible CFloat Int

-- | Text instances for Convertible.
--   
--   Copyright (C) 2011 MailRank, Inc. bos@mailrank.com
--   
--   All rights reserved.
--   
--   For license and copyright information, see the file COPYRIGHT
--   
--   These instances perform conversion between text-like types such as
--   Text, ByteString, and the like.
--   
--   The instances do not include conversions between ByteString and
--   Text or String, since such conversions cannot safely be performed
--   without knowing the encoding of the ByteString.
module Data.Convertible.Instances.Text
instance Convertible ByteString ByteString
instance Convertible ByteString ByteString
instance Convertible ByteString [Word8]
instance Convertible [Word8] ByteString
instance Convertible ByteString [Word8]
instance Convertible [Word8] ByteString
instance Convertible Text Text
instance Convertible Text Text
instance Convertible Text [Char]
instance Convertible [Char] Text
instance Convertible Text [Char]
instance Convertible [Char] Text

-- | Instances to convert between various time structures, both old- and
--   new-style.
--   
--   At present, this module does not do full input validation. That is, it
--   is possible to get an exception rather than a Left result from these
--   functions if your input is invalid, particularly when converting from
--   the old-style System.Time structures.
--   
--   Copyright (C) 2009-2011 John Goerzen jgoerzen@complete.org
--   
--   All rights reserved.
--   
--   For license and copyright information, see the file LICENSE
module Data.Convertible.Instances.Time
instance Convertible ZonedTime CTime
instance Convertible CTime ZonedTime
instance Convertible CalendarTime CTime
instance Convertible CTime CalendarTime
instance Convertible ClockTime CTime
instance Convertible CTime ClockTime
instance Convertible UTCTime CTime
instance Convertible CTime UTCTime
instance Convertible Int CTime
instance Convertible CTime Int
instance Convertible Double CTime
instance Convertible CTime Double
instance Convertible Integer CTime
instance Convertible CTime Integer
instance Convertible POSIXTime CTime
instance Convertible CTime POSIXTime
instance Convertible TimeDiff Double
instance Convertible TimeDiff Rational
instance Convertible TimeDiff Integer
instance Convertible Double TimeDiff
instance Convertible Integer TimeDiff
instance Convertible NominalDiffTime TimeDiff
instance Convertible TimeDiff NominalDiffTime
instance Convertible UTCTime CalendarTime
instance Convertible POSIXTime CalendarTime
instance Convertible ZonedTime CalendarTime
instance Convertible UTCTime ClockTime
instance Convertible POSIXTime ClockTime
instance Convertible ZonedTime ClockTime
instance Convertible ClockTime ZonedTime
instance Convertible ClockTime UTCTime
instance Convertible ClockTime POSIXTime
instance Convertible CalendarTime UTCTime
instance Convertible CalendarTime POSIXTime
instance Convertible CalendarTime ZonedTime
instance Convertible ZonedTime POSIXTime
instance Convertible ZonedTime UTCTime
instance Convertible POSIXTime ZonedTime
instance Convertible UTCTime ZonedTime
instance Convertible UTCTime Int
instance Convertible UTCTime Double
instance Convertible UTCTime Integer
instance Convertible UTCTime Rational
instance Convertible Double UTCTime
instance Convertible Int UTCTime
instance Convertible Integer UTCTime
instance Convertible Rational UTCTime
instance Convertible UTCTime POSIXTime
instance Convertible POSIXTime UTCTime
instance Convertible POSIXTime Int
instance Convertible POSIXTime Double
instance Convertible POSIXTime Rational
instance Convertible POSIXTime Integer
instance Convertible Double POSIXTime
instance Convertible Int POSIXTime
instance Convertible Integer POSIXTime
instance Convertible Rational POSIXTime
instance Convertible Integer ClockTime
instance Convertible ClockTime Integer
instance Convertible CalendarTime ClockTime
instance Convertible ClockTime CalendarTime

-- | Collection of ready-made Convertible instances. See each
--   individual module for more docs:
--   
--   Data.Convertible.Instances.C
--   
--   Data.Convertible.Instances.Map
--   
--   Data.Convertible.Instances.Num
--   
--   Data.Convertible.Instances.Time
--   
--   You can find a list of these instances at Convertible.
module Data.Convertible.Instances

-- | This is a library to provide a uniform interface for safe conversions
--   between different types of data. To get started reading about it,
--   consult:
--   
--   Data.Convertible.Base for information about the conversions
--   themselves
--   
--   Data.Convertible.Utils for helpful tools for people writing
--   Convertible instances
--   
--   Data.Convertible.Instances for a large collection of
--   ready-built Convertible instances
--   
--   You can import these modules individually, or this module will export
--   the entire library for you.
module Data.Convertible
