packages feed

convertible 1.0.0 → 1.0.1

raw patch · 7 files changed

+1687/−23 lines, 7 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Data.Convertible.Instances.C: instance Convertible CChar CInt
+ Data.Convertible.Instances.C: instance Convertible CChar CLLong
+ Data.Convertible.Instances.C: instance Convertible CChar CLong
+ Data.Convertible.Instances.C: instance Convertible CChar CSChar
+ Data.Convertible.Instances.C: instance Convertible CChar CShort
+ Data.Convertible.Instances.C: instance Convertible CChar CSize
+ Data.Convertible.Instances.C: instance Convertible CChar CUChar
+ Data.Convertible.Instances.C: instance Convertible CChar CUInt
+ Data.Convertible.Instances.C: instance Convertible CChar CULLong
+ Data.Convertible.Instances.C: instance Convertible CChar CULong
+ Data.Convertible.Instances.C: instance Convertible CChar CUShort
+ Data.Convertible.Instances.C: instance Convertible CChar CWchar
+ Data.Convertible.Instances.C: instance Convertible CChar Char
+ Data.Convertible.Instances.C: instance Convertible CChar Int
+ Data.Convertible.Instances.C: instance Convertible CChar Int16
+ Data.Convertible.Instances.C: instance Convertible CChar Int32
+ Data.Convertible.Instances.C: instance Convertible CChar Int64
+ Data.Convertible.Instances.C: instance Convertible CChar Int8
+ Data.Convertible.Instances.C: instance Convertible CChar Integer
+ Data.Convertible.Instances.C: instance Convertible CChar Word
+ Data.Convertible.Instances.C: instance Convertible CChar Word16
+ Data.Convertible.Instances.C: instance Convertible CChar Word32
+ Data.Convertible.Instances.C: instance Convertible CChar Word64
+ Data.Convertible.Instances.C: instance Convertible CChar Word8
+ Data.Convertible.Instances.C: instance Convertible CDouble CFloat
+ Data.Convertible.Instances.C: instance Convertible CDouble CLDouble
+ Data.Convertible.Instances.C: instance Convertible CDouble Double
+ Data.Convertible.Instances.C: instance Convertible CDouble Float
+ Data.Convertible.Instances.C: instance Convertible CDouble Int
+ Data.Convertible.Instances.C: instance Convertible CDouble Int16
+ Data.Convertible.Instances.C: instance Convertible CDouble Int32
+ Data.Convertible.Instances.C: instance Convertible CDouble Int64
+ Data.Convertible.Instances.C: instance Convertible CDouble Int8
+ Data.Convertible.Instances.C: instance Convertible CDouble Integer
+ Data.Convertible.Instances.C: instance Convertible CDouble Rational
+ Data.Convertible.Instances.C: instance Convertible CDouble Word
+ Data.Convertible.Instances.C: instance Convertible CDouble Word16
+ Data.Convertible.Instances.C: instance Convertible CDouble Word32
+ Data.Convertible.Instances.C: instance Convertible CDouble Word64
+ Data.Convertible.Instances.C: instance Convertible CDouble Word8
+ Data.Convertible.Instances.C: instance Convertible CFloat CDouble
+ Data.Convertible.Instances.C: instance Convertible CFloat CLDouble
+ Data.Convertible.Instances.C: instance Convertible CFloat Double
+ Data.Convertible.Instances.C: instance Convertible CFloat Float
+ Data.Convertible.Instances.C: instance Convertible CFloat Int
+ Data.Convertible.Instances.C: instance Convertible CFloat Int16
+ Data.Convertible.Instances.C: instance Convertible CFloat Int32
+ Data.Convertible.Instances.C: instance Convertible CFloat Int64
+ Data.Convertible.Instances.C: instance Convertible CFloat Int8
+ Data.Convertible.Instances.C: instance Convertible CFloat Integer
+ Data.Convertible.Instances.C: instance Convertible CFloat Rational
+ Data.Convertible.Instances.C: instance Convertible CFloat Word
+ Data.Convertible.Instances.C: instance Convertible CFloat Word16
+ Data.Convertible.Instances.C: instance Convertible CFloat Word32
+ Data.Convertible.Instances.C: instance Convertible CFloat Word64
+ Data.Convertible.Instances.C: instance Convertible CFloat Word8
+ Data.Convertible.Instances.C: instance Convertible CInt CChar
+ Data.Convertible.Instances.C: instance Convertible CInt CLLong
+ Data.Convertible.Instances.C: instance Convertible CInt CLong
+ Data.Convertible.Instances.C: instance Convertible CInt CSChar
+ Data.Convertible.Instances.C: instance Convertible CInt CShort
+ Data.Convertible.Instances.C: instance Convertible CInt CSize
+ Data.Convertible.Instances.C: instance Convertible CInt CUChar
+ Data.Convertible.Instances.C: instance Convertible CInt CUInt
+ Data.Convertible.Instances.C: instance Convertible CInt CULLong
+ Data.Convertible.Instances.C: instance Convertible CInt CULong
+ Data.Convertible.Instances.C: instance Convertible CInt CUShort
+ Data.Convertible.Instances.C: instance Convertible CInt CWchar
+ Data.Convertible.Instances.C: instance Convertible CInt Char
+ Data.Convertible.Instances.C: instance Convertible CInt Int
+ Data.Convertible.Instances.C: instance Convertible CInt Int16
+ Data.Convertible.Instances.C: instance Convertible CInt Int32
+ Data.Convertible.Instances.C: instance Convertible CInt Int64
+ Data.Convertible.Instances.C: instance Convertible CInt Int8
+ Data.Convertible.Instances.C: instance Convertible CInt Integer
+ Data.Convertible.Instances.C: instance Convertible CInt Word
+ Data.Convertible.Instances.C: instance Convertible CInt Word16
+ Data.Convertible.Instances.C: instance Convertible CInt Word32
+ Data.Convertible.Instances.C: instance Convertible CInt Word64
+ Data.Convertible.Instances.C: instance Convertible CInt Word8
+ Data.Convertible.Instances.C: instance Convertible CLDouble CDouble
+ Data.Convertible.Instances.C: instance Convertible CLDouble CFloat
+ Data.Convertible.Instances.C: instance Convertible CLDouble Double
+ Data.Convertible.Instances.C: instance Convertible CLDouble Float
+ Data.Convertible.Instances.C: instance Convertible CLDouble Int
+ Data.Convertible.Instances.C: instance Convertible CLDouble Int16
+ Data.Convertible.Instances.C: instance Convertible CLDouble Int32
+ Data.Convertible.Instances.C: instance Convertible CLDouble Int64
+ Data.Convertible.Instances.C: instance Convertible CLDouble Int8
+ Data.Convertible.Instances.C: instance Convertible CLDouble Integer
+ Data.Convertible.Instances.C: instance Convertible CLDouble Rational
+ Data.Convertible.Instances.C: instance Convertible CLDouble Word
+ Data.Convertible.Instances.C: instance Convertible CLDouble Word16
+ Data.Convertible.Instances.C: instance Convertible CLDouble Word32
+ Data.Convertible.Instances.C: instance Convertible CLDouble Word64
+ Data.Convertible.Instances.C: instance Convertible CLDouble Word8
+ Data.Convertible.Instances.C: instance Convertible CLLong CChar
+ Data.Convertible.Instances.C: instance Convertible CLLong CInt
+ Data.Convertible.Instances.C: instance Convertible CLLong CLong
+ Data.Convertible.Instances.C: instance Convertible CLLong CSChar
+ Data.Convertible.Instances.C: instance Convertible CLLong CShort
+ Data.Convertible.Instances.C: instance Convertible CLLong CSize
+ Data.Convertible.Instances.C: instance Convertible CLLong CUChar
+ Data.Convertible.Instances.C: instance Convertible CLLong CUInt
+ Data.Convertible.Instances.C: instance Convertible CLLong CULLong
+ Data.Convertible.Instances.C: instance Convertible CLLong CULong
+ Data.Convertible.Instances.C: instance Convertible CLLong CUShort
+ Data.Convertible.Instances.C: instance Convertible CLLong CWchar
+ Data.Convertible.Instances.C: instance Convertible CLLong Char
+ Data.Convertible.Instances.C: instance Convertible CLLong Int
+ Data.Convertible.Instances.C: instance Convertible CLLong Int16
+ Data.Convertible.Instances.C: instance Convertible CLLong Int32
+ Data.Convertible.Instances.C: instance Convertible CLLong Int64
+ Data.Convertible.Instances.C: instance Convertible CLLong Int8
+ Data.Convertible.Instances.C: instance Convertible CLLong Integer
+ Data.Convertible.Instances.C: instance Convertible CLLong Word
+ Data.Convertible.Instances.C: instance Convertible CLLong Word16
+ Data.Convertible.Instances.C: instance Convertible CLLong Word32
+ Data.Convertible.Instances.C: instance Convertible CLLong Word64
+ Data.Convertible.Instances.C: instance Convertible CLLong Word8
+ Data.Convertible.Instances.C: instance Convertible CLong CChar
+ Data.Convertible.Instances.C: instance Convertible CLong CInt
+ Data.Convertible.Instances.C: instance Convertible CLong CLLong
+ Data.Convertible.Instances.C: instance Convertible CLong CSChar
+ Data.Convertible.Instances.C: instance Convertible CLong CShort
+ Data.Convertible.Instances.C: instance Convertible CLong CSize
+ Data.Convertible.Instances.C: instance Convertible CLong CUChar
+ Data.Convertible.Instances.C: instance Convertible CLong CUInt
+ Data.Convertible.Instances.C: instance Convertible CLong CULLong
+ Data.Convertible.Instances.C: instance Convertible CLong CULong
+ Data.Convertible.Instances.C: instance Convertible CLong CUShort
+ Data.Convertible.Instances.C: instance Convertible CLong CWchar
+ Data.Convertible.Instances.C: instance Convertible CLong Char
+ Data.Convertible.Instances.C: instance Convertible CLong Int
+ Data.Convertible.Instances.C: instance Convertible CLong Int16
+ Data.Convertible.Instances.C: instance Convertible CLong Int32
+ Data.Convertible.Instances.C: instance Convertible CLong Int64
+ Data.Convertible.Instances.C: instance Convertible CLong Int8
+ Data.Convertible.Instances.C: instance Convertible CLong Integer
+ Data.Convertible.Instances.C: instance Convertible CLong Word
+ Data.Convertible.Instances.C: instance Convertible CLong Word16
+ Data.Convertible.Instances.C: instance Convertible CLong Word32
+ Data.Convertible.Instances.C: instance Convertible CLong Word64
+ Data.Convertible.Instances.C: instance Convertible CLong Word8
+ Data.Convertible.Instances.C: instance Convertible CSChar CChar
+ Data.Convertible.Instances.C: instance Convertible CSChar CInt
+ Data.Convertible.Instances.C: instance Convertible CSChar CLLong
+ Data.Convertible.Instances.C: instance Convertible CSChar CLong
+ Data.Convertible.Instances.C: instance Convertible CSChar CShort
+ Data.Convertible.Instances.C: instance Convertible CSChar CSize
+ Data.Convertible.Instances.C: instance Convertible CSChar CUChar
+ Data.Convertible.Instances.C: instance Convertible CSChar CUInt
+ Data.Convertible.Instances.C: instance Convertible CSChar CULLong
+ Data.Convertible.Instances.C: instance Convertible CSChar CULong
+ Data.Convertible.Instances.C: instance Convertible CSChar CUShort
+ Data.Convertible.Instances.C: instance Convertible CSChar CWchar
+ Data.Convertible.Instances.C: instance Convertible CSChar Char
+ Data.Convertible.Instances.C: instance Convertible CSChar Int
+ Data.Convertible.Instances.C: instance Convertible CSChar Int16
+ Data.Convertible.Instances.C: instance Convertible CSChar Int32
+ Data.Convertible.Instances.C: instance Convertible CSChar Int64
+ Data.Convertible.Instances.C: instance Convertible CSChar Int8
+ Data.Convertible.Instances.C: instance Convertible CSChar Integer
+ Data.Convertible.Instances.C: instance Convertible CSChar Word
+ Data.Convertible.Instances.C: instance Convertible CSChar Word16
+ Data.Convertible.Instances.C: instance Convertible CSChar Word32
+ Data.Convertible.Instances.C: instance Convertible CSChar Word64
+ Data.Convertible.Instances.C: instance Convertible CSChar Word8
+ Data.Convertible.Instances.C: instance Convertible CShort CChar
+ Data.Convertible.Instances.C: instance Convertible CShort CInt
+ Data.Convertible.Instances.C: instance Convertible CShort CLLong
+ Data.Convertible.Instances.C: instance Convertible CShort CLong
+ Data.Convertible.Instances.C: instance Convertible CShort CSChar
+ Data.Convertible.Instances.C: instance Convertible CShort CSize
+ Data.Convertible.Instances.C: instance Convertible CShort CUChar
+ Data.Convertible.Instances.C: instance Convertible CShort CUInt
+ Data.Convertible.Instances.C: instance Convertible CShort CULLong
+ Data.Convertible.Instances.C: instance Convertible CShort CULong
+ Data.Convertible.Instances.C: instance Convertible CShort CUShort
+ Data.Convertible.Instances.C: instance Convertible CShort CWchar
+ Data.Convertible.Instances.C: instance Convertible CShort Char
+ Data.Convertible.Instances.C: instance Convertible CShort Int
+ Data.Convertible.Instances.C: instance Convertible CShort Int16
+ Data.Convertible.Instances.C: instance Convertible CShort Int32
+ Data.Convertible.Instances.C: instance Convertible CShort Int64
+ Data.Convertible.Instances.C: instance Convertible CShort Int8
+ Data.Convertible.Instances.C: instance Convertible CShort Integer
+ Data.Convertible.Instances.C: instance Convertible CShort Word
+ Data.Convertible.Instances.C: instance Convertible CShort Word16
+ Data.Convertible.Instances.C: instance Convertible CShort Word32
+ Data.Convertible.Instances.C: instance Convertible CShort Word64
+ Data.Convertible.Instances.C: instance Convertible CShort Word8
+ Data.Convertible.Instances.C: instance Convertible CSize CChar
+ Data.Convertible.Instances.C: instance Convertible CSize CInt
+ Data.Convertible.Instances.C: instance Convertible CSize CLLong
+ Data.Convertible.Instances.C: instance Convertible CSize CLong
+ Data.Convertible.Instances.C: instance Convertible CSize CSChar
+ Data.Convertible.Instances.C: instance Convertible CSize CShort
+ Data.Convertible.Instances.C: instance Convertible CSize CUChar
+ Data.Convertible.Instances.C: instance Convertible CSize CUInt
+ Data.Convertible.Instances.C: instance Convertible CSize CULLong
+ Data.Convertible.Instances.C: instance Convertible CSize CULong
+ Data.Convertible.Instances.C: instance Convertible CSize CUShort
+ Data.Convertible.Instances.C: instance Convertible CSize CWchar
+ Data.Convertible.Instances.C: instance Convertible CSize Char
+ Data.Convertible.Instances.C: instance Convertible CSize Int
+ Data.Convertible.Instances.C: instance Convertible CSize Int16
+ Data.Convertible.Instances.C: instance Convertible CSize Int32
+ Data.Convertible.Instances.C: instance Convertible CSize Int64
+ Data.Convertible.Instances.C: instance Convertible CSize Int8
+ Data.Convertible.Instances.C: instance Convertible CSize Integer
+ Data.Convertible.Instances.C: instance Convertible CSize Word
+ Data.Convertible.Instances.C: instance Convertible CSize Word16
+ Data.Convertible.Instances.C: instance Convertible CSize Word32
+ Data.Convertible.Instances.C: instance Convertible CSize Word64
+ Data.Convertible.Instances.C: instance Convertible CSize Word8
+ Data.Convertible.Instances.C: instance Convertible CUChar CChar
+ Data.Convertible.Instances.C: instance Convertible CUChar CInt
+ Data.Convertible.Instances.C: instance Convertible CUChar CLLong
+ Data.Convertible.Instances.C: instance Convertible CUChar CLong
+ Data.Convertible.Instances.C: instance Convertible CUChar CSChar
+ Data.Convertible.Instances.C: instance Convertible CUChar CShort
+ Data.Convertible.Instances.C: instance Convertible CUChar CSize
+ Data.Convertible.Instances.C: instance Convertible CUChar CUInt
+ Data.Convertible.Instances.C: instance Convertible CUChar CULLong
+ Data.Convertible.Instances.C: instance Convertible CUChar CULong
+ Data.Convertible.Instances.C: instance Convertible CUChar CUShort
+ Data.Convertible.Instances.C: instance Convertible CUChar CWchar
+ Data.Convertible.Instances.C: instance Convertible CUChar Char
+ Data.Convertible.Instances.C: instance Convertible CUChar Int
+ Data.Convertible.Instances.C: instance Convertible CUChar Int16
+ Data.Convertible.Instances.C: instance Convertible CUChar Int32
+ Data.Convertible.Instances.C: instance Convertible CUChar Int64
+ Data.Convertible.Instances.C: instance Convertible CUChar Int8
+ Data.Convertible.Instances.C: instance Convertible CUChar Integer
+ Data.Convertible.Instances.C: instance Convertible CUChar Word
+ Data.Convertible.Instances.C: instance Convertible CUChar Word16
+ Data.Convertible.Instances.C: instance Convertible CUChar Word32
+ Data.Convertible.Instances.C: instance Convertible CUChar Word64
+ Data.Convertible.Instances.C: instance Convertible CUChar Word8
+ Data.Convertible.Instances.C: instance Convertible CUInt CChar
+ Data.Convertible.Instances.C: instance Convertible CUInt CInt
+ Data.Convertible.Instances.C: instance Convertible CUInt CLLong
+ Data.Convertible.Instances.C: instance Convertible CUInt CLong
+ Data.Convertible.Instances.C: instance Convertible CUInt CSChar
+ Data.Convertible.Instances.C: instance Convertible CUInt CShort
+ Data.Convertible.Instances.C: instance Convertible CUInt CSize
+ Data.Convertible.Instances.C: instance Convertible CUInt CUChar
+ Data.Convertible.Instances.C: instance Convertible CUInt CULLong
+ Data.Convertible.Instances.C: instance Convertible CUInt CULong
+ Data.Convertible.Instances.C: instance Convertible CUInt CUShort
+ Data.Convertible.Instances.C: instance Convertible CUInt CWchar
+ Data.Convertible.Instances.C: instance Convertible CUInt Char
+ Data.Convertible.Instances.C: instance Convertible CUInt Int
+ Data.Convertible.Instances.C: instance Convertible CUInt Int16
+ Data.Convertible.Instances.C: instance Convertible CUInt Int32
+ Data.Convertible.Instances.C: instance Convertible CUInt Int64
+ Data.Convertible.Instances.C: instance Convertible CUInt Int8
+ Data.Convertible.Instances.C: instance Convertible CUInt Integer
+ Data.Convertible.Instances.C: instance Convertible CUInt Word
+ Data.Convertible.Instances.C: instance Convertible CUInt Word16
+ Data.Convertible.Instances.C: instance Convertible CUInt Word32
+ Data.Convertible.Instances.C: instance Convertible CUInt Word64
+ Data.Convertible.Instances.C: instance Convertible CUInt Word8
+ Data.Convertible.Instances.C: instance Convertible CULLong CChar
+ Data.Convertible.Instances.C: instance Convertible CULLong CInt
+ Data.Convertible.Instances.C: instance Convertible CULLong CLLong
+ Data.Convertible.Instances.C: instance Convertible CULLong CLong
+ Data.Convertible.Instances.C: instance Convertible CULLong CSChar
+ Data.Convertible.Instances.C: instance Convertible CULLong CShort
+ Data.Convertible.Instances.C: instance Convertible CULLong CSize
+ Data.Convertible.Instances.C: instance Convertible CULLong CUChar
+ Data.Convertible.Instances.C: instance Convertible CULLong CUInt
+ Data.Convertible.Instances.C: instance Convertible CULLong CULong
+ Data.Convertible.Instances.C: instance Convertible CULLong CUShort
+ Data.Convertible.Instances.C: instance Convertible CULLong CWchar
+ Data.Convertible.Instances.C: instance Convertible CULLong Char
+ Data.Convertible.Instances.C: instance Convertible CULLong Int
+ Data.Convertible.Instances.C: instance Convertible CULLong Int16
+ Data.Convertible.Instances.C: instance Convertible CULLong Int32
+ Data.Convertible.Instances.C: instance Convertible CULLong Int64
+ Data.Convertible.Instances.C: instance Convertible CULLong Int8
+ Data.Convertible.Instances.C: instance Convertible CULLong Integer
+ Data.Convertible.Instances.C: instance Convertible CULLong Word
+ Data.Convertible.Instances.C: instance Convertible CULLong Word16
+ Data.Convertible.Instances.C: instance Convertible CULLong Word32
+ Data.Convertible.Instances.C: instance Convertible CULLong Word64
+ Data.Convertible.Instances.C: instance Convertible CULLong Word8
+ Data.Convertible.Instances.C: instance Convertible CULong CChar
+ Data.Convertible.Instances.C: instance Convertible CULong CInt
+ Data.Convertible.Instances.C: instance Convertible CULong CLLong
+ Data.Convertible.Instances.C: instance Convertible CULong CLong
+ Data.Convertible.Instances.C: instance Convertible CULong CSChar
+ Data.Convertible.Instances.C: instance Convertible CULong CShort
+ Data.Convertible.Instances.C: instance Convertible CULong CSize
+ Data.Convertible.Instances.C: instance Convertible CULong CUChar
+ Data.Convertible.Instances.C: instance Convertible CULong CUInt
+ Data.Convertible.Instances.C: instance Convertible CULong CULLong
+ Data.Convertible.Instances.C: instance Convertible CULong CUShort
+ Data.Convertible.Instances.C: instance Convertible CULong CWchar
+ Data.Convertible.Instances.C: instance Convertible CULong Char
+ Data.Convertible.Instances.C: instance Convertible CULong Int
+ Data.Convertible.Instances.C: instance Convertible CULong Int16
+ Data.Convertible.Instances.C: instance Convertible CULong Int32
+ Data.Convertible.Instances.C: instance Convertible CULong Int64
+ Data.Convertible.Instances.C: instance Convertible CULong Int8
+ Data.Convertible.Instances.C: instance Convertible CULong Integer
+ Data.Convertible.Instances.C: instance Convertible CULong Word
+ Data.Convertible.Instances.C: instance Convertible CULong Word16
+ Data.Convertible.Instances.C: instance Convertible CULong Word32
+ Data.Convertible.Instances.C: instance Convertible CULong Word64
+ Data.Convertible.Instances.C: instance Convertible CULong Word8
+ Data.Convertible.Instances.C: instance Convertible CUShort CChar
+ Data.Convertible.Instances.C: instance Convertible CUShort CInt
+ Data.Convertible.Instances.C: instance Convertible CUShort CLLong
+ Data.Convertible.Instances.C: instance Convertible CUShort CLong
+ Data.Convertible.Instances.C: instance Convertible CUShort CSChar
+ Data.Convertible.Instances.C: instance Convertible CUShort CShort
+ Data.Convertible.Instances.C: instance Convertible CUShort CSize
+ Data.Convertible.Instances.C: instance Convertible CUShort CUChar
+ Data.Convertible.Instances.C: instance Convertible CUShort CUInt
+ Data.Convertible.Instances.C: instance Convertible CUShort CULLong
+ Data.Convertible.Instances.C: instance Convertible CUShort CULong
+ Data.Convertible.Instances.C: instance Convertible CUShort CWchar
+ Data.Convertible.Instances.C: instance Convertible CUShort Char
+ Data.Convertible.Instances.C: instance Convertible CUShort Int
+ Data.Convertible.Instances.C: instance Convertible CUShort Int16
+ Data.Convertible.Instances.C: instance Convertible CUShort Int32
+ Data.Convertible.Instances.C: instance Convertible CUShort Int64
+ Data.Convertible.Instances.C: instance Convertible CUShort Int8
+ Data.Convertible.Instances.C: instance Convertible CUShort Integer
+ Data.Convertible.Instances.C: instance Convertible CUShort Word
+ Data.Convertible.Instances.C: instance Convertible CUShort Word16
+ Data.Convertible.Instances.C: instance Convertible CUShort Word32
+ Data.Convertible.Instances.C: instance Convertible CUShort Word64
+ Data.Convertible.Instances.C: instance Convertible CUShort Word8
+ Data.Convertible.Instances.C: instance Convertible CWchar CChar
+ Data.Convertible.Instances.C: instance Convertible CWchar CInt
+ Data.Convertible.Instances.C: instance Convertible CWchar CLLong
+ Data.Convertible.Instances.C: instance Convertible CWchar CLong
+ Data.Convertible.Instances.C: instance Convertible CWchar CSChar
+ Data.Convertible.Instances.C: instance Convertible CWchar CShort
+ Data.Convertible.Instances.C: instance Convertible CWchar CSize
+ Data.Convertible.Instances.C: instance Convertible CWchar CUChar
+ Data.Convertible.Instances.C: instance Convertible CWchar CUInt
+ Data.Convertible.Instances.C: instance Convertible CWchar CULLong
+ Data.Convertible.Instances.C: instance Convertible CWchar CULong
+ Data.Convertible.Instances.C: instance Convertible CWchar CUShort
+ Data.Convertible.Instances.C: instance Convertible CWchar Char
+ Data.Convertible.Instances.C: instance Convertible CWchar Int
+ Data.Convertible.Instances.C: instance Convertible CWchar Int16
+ Data.Convertible.Instances.C: instance Convertible CWchar Int32
+ Data.Convertible.Instances.C: instance Convertible CWchar Int64
+ Data.Convertible.Instances.C: instance Convertible CWchar Int8
+ Data.Convertible.Instances.C: instance Convertible CWchar Integer
+ Data.Convertible.Instances.C: instance Convertible CWchar Word
+ Data.Convertible.Instances.C: instance Convertible CWchar Word16
+ Data.Convertible.Instances.C: instance Convertible CWchar Word32
+ Data.Convertible.Instances.C: instance Convertible CWchar Word64
+ Data.Convertible.Instances.C: instance Convertible CWchar Word8
+ Data.Convertible.Instances.C: instance Convertible Char CChar
+ Data.Convertible.Instances.C: instance Convertible Char CInt
+ Data.Convertible.Instances.C: instance Convertible Char CLLong
+ Data.Convertible.Instances.C: instance Convertible Char CLong
+ Data.Convertible.Instances.C: instance Convertible Char CSChar
+ Data.Convertible.Instances.C: instance Convertible Char CShort
+ Data.Convertible.Instances.C: instance Convertible Char CSize
+ Data.Convertible.Instances.C: instance Convertible Char CUChar
+ Data.Convertible.Instances.C: instance Convertible Char CUInt
+ Data.Convertible.Instances.C: instance Convertible Char CULLong
+ Data.Convertible.Instances.C: instance Convertible Char CULong
+ Data.Convertible.Instances.C: instance Convertible Char CUShort
+ Data.Convertible.Instances.C: instance Convertible Char CWchar
+ Data.Convertible.Instances.C: instance Convertible Double CDouble
+ Data.Convertible.Instances.C: instance Convertible Double CFloat
+ Data.Convertible.Instances.C: instance Convertible Double CLDouble
+ Data.Convertible.Instances.C: instance Convertible Float CDouble
+ Data.Convertible.Instances.C: instance Convertible Float CFloat
+ Data.Convertible.Instances.C: instance Convertible Float CLDouble
+ Data.Convertible.Instances.C: instance Convertible Int CChar
+ Data.Convertible.Instances.C: instance Convertible Int CDouble
+ Data.Convertible.Instances.C: instance Convertible Int CFloat
+ Data.Convertible.Instances.C: instance Convertible Int CInt
+ Data.Convertible.Instances.C: instance Convertible Int CLDouble
+ Data.Convertible.Instances.C: instance Convertible Int CLLong
+ Data.Convertible.Instances.C: instance Convertible Int CLong
+ Data.Convertible.Instances.C: instance Convertible Int CSChar
+ Data.Convertible.Instances.C: instance Convertible Int CShort
+ Data.Convertible.Instances.C: instance Convertible Int CSize
+ Data.Convertible.Instances.C: instance Convertible Int CUChar
+ Data.Convertible.Instances.C: instance Convertible Int CUInt
+ Data.Convertible.Instances.C: instance Convertible Int CULLong
+ Data.Convertible.Instances.C: instance Convertible Int CULong
+ Data.Convertible.Instances.C: instance Convertible Int CUShort
+ Data.Convertible.Instances.C: instance Convertible Int CWchar
+ Data.Convertible.Instances.C: instance Convertible Int16 CChar
+ Data.Convertible.Instances.C: instance Convertible Int16 CDouble
+ Data.Convertible.Instances.C: instance Convertible Int16 CFloat
+ Data.Convertible.Instances.C: instance Convertible Int16 CInt
+ Data.Convertible.Instances.C: instance Convertible Int16 CLDouble
+ Data.Convertible.Instances.C: instance Convertible Int16 CLLong
+ Data.Convertible.Instances.C: instance Convertible Int16 CLong
+ Data.Convertible.Instances.C: instance Convertible Int16 CSChar
+ Data.Convertible.Instances.C: instance Convertible Int16 CShort
+ Data.Convertible.Instances.C: instance Convertible Int16 CSize
+ Data.Convertible.Instances.C: instance Convertible Int16 CUChar
+ Data.Convertible.Instances.C: instance Convertible Int16 CUInt
+ Data.Convertible.Instances.C: instance Convertible Int16 CULLong
+ Data.Convertible.Instances.C: instance Convertible Int16 CULong
+ Data.Convertible.Instances.C: instance Convertible Int16 CUShort
+ Data.Convertible.Instances.C: instance Convertible Int16 CWchar
+ Data.Convertible.Instances.C: instance Convertible Int32 CChar
+ Data.Convertible.Instances.C: instance Convertible Int32 CDouble
+ Data.Convertible.Instances.C: instance Convertible Int32 CFloat
+ Data.Convertible.Instances.C: instance Convertible Int32 CInt
+ Data.Convertible.Instances.C: instance Convertible Int32 CLDouble
+ Data.Convertible.Instances.C: instance Convertible Int32 CLLong
+ Data.Convertible.Instances.C: instance Convertible Int32 CLong
+ Data.Convertible.Instances.C: instance Convertible Int32 CSChar
+ Data.Convertible.Instances.C: instance Convertible Int32 CShort
+ Data.Convertible.Instances.C: instance Convertible Int32 CSize
+ Data.Convertible.Instances.C: instance Convertible Int32 CUChar
+ Data.Convertible.Instances.C: instance Convertible Int32 CUInt
+ Data.Convertible.Instances.C: instance Convertible Int32 CULLong
+ Data.Convertible.Instances.C: instance Convertible Int32 CULong
+ Data.Convertible.Instances.C: instance Convertible Int32 CUShort
+ Data.Convertible.Instances.C: instance Convertible Int32 CWchar
+ Data.Convertible.Instances.C: instance Convertible Int64 CChar
+ Data.Convertible.Instances.C: instance Convertible Int64 CDouble
+ Data.Convertible.Instances.C: instance Convertible Int64 CFloat
+ Data.Convertible.Instances.C: instance Convertible Int64 CInt
+ Data.Convertible.Instances.C: instance Convertible Int64 CLDouble
+ Data.Convertible.Instances.C: instance Convertible Int64 CLLong
+ Data.Convertible.Instances.C: instance Convertible Int64 CLong
+ Data.Convertible.Instances.C: instance Convertible Int64 CSChar
+ Data.Convertible.Instances.C: instance Convertible Int64 CShort
+ Data.Convertible.Instances.C: instance Convertible Int64 CSize
+ Data.Convertible.Instances.C: instance Convertible Int64 CUChar
+ Data.Convertible.Instances.C: instance Convertible Int64 CUInt
+ Data.Convertible.Instances.C: instance Convertible Int64 CULLong
+ Data.Convertible.Instances.C: instance Convertible Int64 CULong
+ Data.Convertible.Instances.C: instance Convertible Int64 CUShort
+ Data.Convertible.Instances.C: instance Convertible Int64 CWchar
+ Data.Convertible.Instances.C: instance Convertible Int8 CChar
+ Data.Convertible.Instances.C: instance Convertible Int8 CDouble
+ Data.Convertible.Instances.C: instance Convertible Int8 CFloat
+ Data.Convertible.Instances.C: instance Convertible Int8 CInt
+ Data.Convertible.Instances.C: instance Convertible Int8 CLDouble
+ Data.Convertible.Instances.C: instance Convertible Int8 CLLong
+ Data.Convertible.Instances.C: instance Convertible Int8 CLong
+ Data.Convertible.Instances.C: instance Convertible Int8 CSChar
+ Data.Convertible.Instances.C: instance Convertible Int8 CShort
+ Data.Convertible.Instances.C: instance Convertible Int8 CSize
+ Data.Convertible.Instances.C: instance Convertible Int8 CUChar
+ Data.Convertible.Instances.C: instance Convertible Int8 CUInt
+ Data.Convertible.Instances.C: instance Convertible Int8 CULLong
+ Data.Convertible.Instances.C: instance Convertible Int8 CULong
+ Data.Convertible.Instances.C: instance Convertible Int8 CUShort
+ Data.Convertible.Instances.C: instance Convertible Int8 CWchar
+ Data.Convertible.Instances.C: instance Convertible Integer CChar
+ Data.Convertible.Instances.C: instance Convertible Integer CDouble
+ Data.Convertible.Instances.C: instance Convertible Integer CFloat
+ Data.Convertible.Instances.C: instance Convertible Integer CInt
+ Data.Convertible.Instances.C: instance Convertible Integer CLDouble
+ Data.Convertible.Instances.C: instance Convertible Integer CLLong
+ Data.Convertible.Instances.C: instance Convertible Integer CLong
+ Data.Convertible.Instances.C: instance Convertible Integer CSChar
+ Data.Convertible.Instances.C: instance Convertible Integer CShort
+ Data.Convertible.Instances.C: instance Convertible Integer CSize
+ Data.Convertible.Instances.C: instance Convertible Integer CUChar
+ Data.Convertible.Instances.C: instance Convertible Integer CUInt
+ Data.Convertible.Instances.C: instance Convertible Integer CULLong
+ Data.Convertible.Instances.C: instance Convertible Integer CULong
+ Data.Convertible.Instances.C: instance Convertible Integer CUShort
+ Data.Convertible.Instances.C: instance Convertible Integer CWchar
+ Data.Convertible.Instances.C: instance Convertible Rational CDouble
+ Data.Convertible.Instances.C: instance Convertible Rational CFloat
+ Data.Convertible.Instances.C: instance Convertible Rational CLDouble
+ Data.Convertible.Instances.C: instance Convertible Word CChar
+ Data.Convertible.Instances.C: instance Convertible Word CDouble
+ Data.Convertible.Instances.C: instance Convertible Word CFloat
+ Data.Convertible.Instances.C: instance Convertible Word CInt
+ Data.Convertible.Instances.C: instance Convertible Word CLDouble
+ Data.Convertible.Instances.C: instance Convertible Word CLLong
+ Data.Convertible.Instances.C: instance Convertible Word CLong
+ Data.Convertible.Instances.C: instance Convertible Word CSChar
+ Data.Convertible.Instances.C: instance Convertible Word CShort
+ Data.Convertible.Instances.C: instance Convertible Word CSize
+ Data.Convertible.Instances.C: instance Convertible Word CUChar
+ Data.Convertible.Instances.C: instance Convertible Word CUInt
+ Data.Convertible.Instances.C: instance Convertible Word CULLong
+ Data.Convertible.Instances.C: instance Convertible Word CULong
+ Data.Convertible.Instances.C: instance Convertible Word CUShort
+ Data.Convertible.Instances.C: instance Convertible Word CWchar
+ Data.Convertible.Instances.C: instance Convertible Word16 CChar
+ Data.Convertible.Instances.C: instance Convertible Word16 CDouble
+ Data.Convertible.Instances.C: instance Convertible Word16 CFloat
+ Data.Convertible.Instances.C: instance Convertible Word16 CInt
+ Data.Convertible.Instances.C: instance Convertible Word16 CLDouble
+ Data.Convertible.Instances.C: instance Convertible Word16 CLLong
+ Data.Convertible.Instances.C: instance Convertible Word16 CLong
+ Data.Convertible.Instances.C: instance Convertible Word16 CSChar
+ Data.Convertible.Instances.C: instance Convertible Word16 CShort
+ Data.Convertible.Instances.C: instance Convertible Word16 CSize
+ Data.Convertible.Instances.C: instance Convertible Word16 CUChar
+ Data.Convertible.Instances.C: instance Convertible Word16 CUInt
+ Data.Convertible.Instances.C: instance Convertible Word16 CULLong
+ Data.Convertible.Instances.C: instance Convertible Word16 CULong
+ Data.Convertible.Instances.C: instance Convertible Word16 CUShort
+ Data.Convertible.Instances.C: instance Convertible Word16 CWchar
+ Data.Convertible.Instances.C: instance Convertible Word32 CChar
+ Data.Convertible.Instances.C: instance Convertible Word32 CDouble
+ Data.Convertible.Instances.C: instance Convertible Word32 CFloat
+ Data.Convertible.Instances.C: instance Convertible Word32 CInt
+ Data.Convertible.Instances.C: instance Convertible Word32 CLDouble
+ Data.Convertible.Instances.C: instance Convertible Word32 CLLong
+ Data.Convertible.Instances.C: instance Convertible Word32 CLong
+ Data.Convertible.Instances.C: instance Convertible Word32 CSChar
+ Data.Convertible.Instances.C: instance Convertible Word32 CShort
+ Data.Convertible.Instances.C: instance Convertible Word32 CSize
+ Data.Convertible.Instances.C: instance Convertible Word32 CUChar
+ Data.Convertible.Instances.C: instance Convertible Word32 CUInt
+ Data.Convertible.Instances.C: instance Convertible Word32 CULLong
+ Data.Convertible.Instances.C: instance Convertible Word32 CULong
+ Data.Convertible.Instances.C: instance Convertible Word32 CUShort
+ Data.Convertible.Instances.C: instance Convertible Word32 CWchar
+ Data.Convertible.Instances.C: instance Convertible Word64 CChar
+ Data.Convertible.Instances.C: instance Convertible Word64 CDouble
+ Data.Convertible.Instances.C: instance Convertible Word64 CFloat
+ Data.Convertible.Instances.C: instance Convertible Word64 CInt
+ Data.Convertible.Instances.C: instance Convertible Word64 CLDouble
+ Data.Convertible.Instances.C: instance Convertible Word64 CLLong
+ Data.Convertible.Instances.C: instance Convertible Word64 CLong
+ Data.Convertible.Instances.C: instance Convertible Word64 CSChar
+ Data.Convertible.Instances.C: instance Convertible Word64 CShort
+ Data.Convertible.Instances.C: instance Convertible Word64 CSize
+ Data.Convertible.Instances.C: instance Convertible Word64 CUChar
+ Data.Convertible.Instances.C: instance Convertible Word64 CUInt
+ Data.Convertible.Instances.C: instance Convertible Word64 CULLong
+ Data.Convertible.Instances.C: instance Convertible Word64 CULong
+ Data.Convertible.Instances.C: instance Convertible Word64 CUShort
+ Data.Convertible.Instances.C: instance Convertible Word64 CWchar
+ Data.Convertible.Instances.C: instance Convertible Word8 CChar
+ Data.Convertible.Instances.C: instance Convertible Word8 CDouble
+ Data.Convertible.Instances.C: instance Convertible Word8 CFloat
+ Data.Convertible.Instances.C: instance Convertible Word8 CInt
+ Data.Convertible.Instances.C: instance Convertible Word8 CLDouble
+ Data.Convertible.Instances.C: instance Convertible Word8 CLLong
+ Data.Convertible.Instances.C: instance Convertible Word8 CLong
+ Data.Convertible.Instances.C: instance Convertible Word8 CSChar
+ Data.Convertible.Instances.C: instance Convertible Word8 CShort
+ Data.Convertible.Instances.C: instance Convertible Word8 CSize
+ Data.Convertible.Instances.C: instance Convertible Word8 CUChar
+ Data.Convertible.Instances.C: instance Convertible Word8 CUInt
+ Data.Convertible.Instances.C: instance Convertible Word8 CULLong
+ Data.Convertible.Instances.C: instance Convertible Word8 CULong
+ Data.Convertible.Instances.C: instance Convertible Word8 CUShort
+ Data.Convertible.Instances.C: instance Convertible Word8 CWchar
+ Data.Convertible.Instances.Time: instance Convertible CTime CalendarTime
+ Data.Convertible.Instances.Time: instance Convertible CTime ClockTime
+ Data.Convertible.Instances.Time: instance Convertible CTime Double
+ Data.Convertible.Instances.Time: instance Convertible CTime Int
+ Data.Convertible.Instances.Time: instance Convertible CTime Integer
+ Data.Convertible.Instances.Time: instance Convertible CTime POSIXTime
+ Data.Convertible.Instances.Time: instance Convertible CTime UTCTime
+ Data.Convertible.Instances.Time: instance Convertible CTime ZonedTime
+ Data.Convertible.Instances.Time: instance Convertible CalendarTime CTime
+ Data.Convertible.Instances.Time: instance Convertible ClockTime CTime
+ Data.Convertible.Instances.Time: instance Convertible Double CTime
+ Data.Convertible.Instances.Time: instance Convertible Int CTime
+ Data.Convertible.Instances.Time: instance Convertible Integer CTime
+ Data.Convertible.Instances.Time: instance Convertible Integer TimeDiff
+ Data.Convertible.Instances.Time: instance Convertible POSIXTime CTime
+ Data.Convertible.Instances.Time: instance Convertible TimeDiff Integer
+ Data.Convertible.Instances.Time: instance Convertible TimeDiff Rational
+ Data.Convertible.Instances.Time: instance Convertible UTCTime CTime
+ Data.Convertible.Instances.Time: instance Convertible ZonedTime CTime
+ Data.Convertible.Instances.Time: instance Convertible ZonedTime ClockTime
+ Data.Convertible.Utils: convertVia :: (Convertible a b, Convertible b c) => b -> a -> ConvertResult c

Files

Data/Convertible/Instances.hs view
@@ -19,6 +19,8 @@ Collection of ready-made 'Data.Convertible.Convertible' instances.  See each individual module for more docs: +"Data.Convertible.Instances.C"+ "Data.Convertible.Instances.Map"  "Data.Convertible.Instances.Num"@@ -31,6 +33,7 @@ module Data.Convertible.Instances(                                  ) where +import Data.Convertible.Instances.C() import Data.Convertible.Instances.Map() import Data.Convertible.Instances.Num() import Data.Convertible.Instances.Time()
+ Data/Convertible/Instances/C.hs view
@@ -0,0 +1,1514 @@+{- |+   Module     : Data.Convertible.Instances.C+   Copyright  : Copyright (C) 2009 John Goerzen+   License    : LGPL++   Maintainer : John Goerzen <jgoerzen@complete.org>+   Stability  : provisional+   Portability: portable++Numeric instances for Convertible for C types.  See comments in+"Data.Convertible.Instances.Num".++Copyright (C) 2009 John Goerzen <jgoerzen@complete.org>++All rights reserved.++For license and copyright information, see the file COPYRIGHT+-}+module Data.Convertible.Instances.C()+where++import Data.Convertible.Base+import Data.Convertible.Utils+import Data.Convertible.Instances.Num()+import Data.Int+import Data.Word+import Foreign.C.Types++-- remainder of this file generated by utils/genCinstances.hs++-- Section 1+instance Convertible CFloat Int where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Int CFloat where +    safeConvert = return . fromIntegral++instance Convertible CFloat Int8 where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Int8 CFloat where +    safeConvert = return . fromIntegral++instance Convertible CFloat Int16 where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Int16 CFloat where +    safeConvert = return . fromIntegral++instance Convertible CFloat Int32 where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Int32 CFloat where +    safeConvert = return . fromIntegral++instance Convertible CFloat Int64 where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Int64 CFloat where +    safeConvert = return . fromIntegral++instance Convertible CFloat Word where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Word CFloat where +    safeConvert = return . fromIntegral++instance Convertible CFloat Word8 where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Word8 CFloat where +    safeConvert = return . fromIntegral++instance Convertible CFloat Word16 where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Word16 CFloat where +    safeConvert = return . fromIntegral++instance Convertible CFloat Word32 where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Word32 CFloat where +    safeConvert = return . fromIntegral++instance Convertible CFloat Word64 where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Word64 CFloat where +    safeConvert = return . fromIntegral++instance Convertible CDouble Int where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Int CDouble where +    safeConvert = return . fromIntegral++instance Convertible CDouble Int8 where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Int8 CDouble where +    safeConvert = return . fromIntegral++instance Convertible CDouble Int16 where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Int16 CDouble where +    safeConvert = return . fromIntegral++instance Convertible CDouble Int32 where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Int32 CDouble where +    safeConvert = return . fromIntegral++instance Convertible CDouble Int64 where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Int64 CDouble where +    safeConvert = return . fromIntegral++instance Convertible CDouble Word where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Word CDouble where +    safeConvert = return . fromIntegral++instance Convertible CDouble Word8 where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Word8 CDouble where +    safeConvert = return . fromIntegral++instance Convertible CDouble Word16 where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Word16 CDouble where +    safeConvert = return . fromIntegral++instance Convertible CDouble Word32 where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Word32 CDouble where +    safeConvert = return . fromIntegral++instance Convertible CDouble Word64 where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Word64 CDouble where +    safeConvert = return . fromIntegral++instance Convertible CLDouble Int where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Int CLDouble where +    safeConvert = return . fromIntegral++instance Convertible CLDouble Int8 where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Int8 CLDouble where +    safeConvert = return . fromIntegral++instance Convertible CLDouble Int16 where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Int16 CLDouble where +    safeConvert = return . fromIntegral++instance Convertible CLDouble Int32 where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Int32 CLDouble where +    safeConvert = return . fromIntegral++instance Convertible CLDouble Int64 where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Int64 CLDouble where +    safeConvert = return . fromIntegral++instance Convertible CLDouble Word where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Word CLDouble where +    safeConvert = return . fromIntegral++instance Convertible CLDouble Word8 where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Word8 CLDouble where +    safeConvert = return . fromIntegral++instance Convertible CLDouble Word16 where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Word16 CLDouble where +    safeConvert = return . fromIntegral++instance Convertible CLDouble Word32 where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Word32 CLDouble where +    safeConvert = return . fromIntegral++instance Convertible CLDouble Word64 where +    safeConvert = boundedConversion (return . truncate)+instance Convertible Word64 CLDouble where +    safeConvert = return . fromIntegral++-- Section 2+instance Convertible CFloat Double where+    safeConvert = return . realToFrac+instance Convertible Double CFloat where+    safeConvert = return . realToFrac++instance Convertible CFloat Float where+    safeConvert = return . realToFrac+instance Convertible Float CFloat where+    safeConvert = return . realToFrac++instance Convertible CFloat Rational where+    safeConvert = return . realToFrac+instance Convertible Rational CFloat where+    safeConvert = return . realToFrac++instance Convertible CDouble Double where+    safeConvert = return . realToFrac+instance Convertible Double CDouble where+    safeConvert = return . realToFrac++instance Convertible CDouble Float where+    safeConvert = return . realToFrac+instance Convertible Float CDouble where+    safeConvert = return . realToFrac++instance Convertible CDouble Rational where+    safeConvert = return . realToFrac+instance Convertible Rational CDouble where+    safeConvert = return . realToFrac++instance Convertible CLDouble Double where+    safeConvert = return . realToFrac+instance Convertible Double CLDouble where+    safeConvert = return . realToFrac++instance Convertible CLDouble Float where+    safeConvert = return . realToFrac+instance Convertible Float CLDouble where+    safeConvert = return . realToFrac++instance Convertible CLDouble Rational where+    safeConvert = return . realToFrac+instance Convertible Rational CLDouble where+    safeConvert = return . realToFrac++-- Section 3+instance Convertible CChar Int where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int CChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CChar Int8 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int8 CChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CChar Int16 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int16 CChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CChar Int32 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int32 CChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CChar Int64 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int64 CChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CChar Word where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word CChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CChar Word8 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word8 CChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CChar Word16 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word16 CChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CChar Word32 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word32 CChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CChar Word64 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word64 CChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSChar Int where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int CSChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSChar Int8 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int8 CSChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSChar Int16 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int16 CSChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSChar Int32 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int32 CSChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSChar Int64 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int64 CSChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSChar Word where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word CSChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSChar Word8 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word8 CSChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSChar Word16 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word16 CSChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSChar Word32 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word32 CSChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSChar Word64 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word64 CSChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUChar Int where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int CUChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUChar Int8 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int8 CUChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUChar Int16 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int16 CUChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUChar Int32 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int32 CUChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUChar Int64 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int64 CUChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUChar Word where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word CUChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUChar Word8 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word8 CUChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUChar Word16 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word16 CUChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUChar Word32 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word32 CUChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUChar Word64 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word64 CUChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CShort Int where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int CShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CShort Int8 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int8 CShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CShort Int16 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int16 CShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CShort Int32 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int32 CShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CShort Int64 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int64 CShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CShort Word where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word CShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CShort Word8 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word8 CShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CShort Word16 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word16 CShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CShort Word32 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word32 CShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CShort Word64 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word64 CShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUShort Int where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int CUShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUShort Int8 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int8 CUShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUShort Int16 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int16 CUShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUShort Int32 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int32 CUShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUShort Int64 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int64 CUShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUShort Word where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word CUShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUShort Word8 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word8 CUShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUShort Word16 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word16 CUShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUShort Word32 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word32 CUShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUShort Word64 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word64 CUShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CInt Int where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int CInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CInt Int8 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int8 CInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CInt Int16 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int16 CInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CInt Int32 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int32 CInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CInt Int64 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int64 CInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CInt Word where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word CInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CInt Word8 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word8 CInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CInt Word16 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word16 CInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CInt Word32 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word32 CInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CInt Word64 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word64 CInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUInt Int where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int CUInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUInt Int8 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int8 CUInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUInt Int16 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int16 CUInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUInt Int32 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int32 CUInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUInt Int64 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int64 CUInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUInt Word where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word CUInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUInt Word8 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word8 CUInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUInt Word16 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word16 CUInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUInt Word32 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word32 CUInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUInt Word64 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word64 CUInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLong Int where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int CLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLong Int8 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int8 CLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLong Int16 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int16 CLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLong Int32 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int32 CLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLong Int64 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int64 CLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLong Word where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word CLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLong Word8 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word8 CLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLong Word16 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word16 CLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLong Word32 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word32 CLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLong Word64 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word64 CLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULong Int where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int CULong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULong Int8 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int8 CULong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULong Int16 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int16 CULong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULong Int32 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int32 CULong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULong Int64 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int64 CULong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULong Word where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word CULong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULong Word8 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word8 CULong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULong Word16 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word16 CULong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULong Word32 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word32 CULong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULong Word64 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word64 CULong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSize Int where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int CSize where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSize Int8 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int8 CSize where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSize Int16 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int16 CSize where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSize Int32 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int32 CSize where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSize Int64 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int64 CSize where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSize Word where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word CSize where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSize Word8 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word8 CSize where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSize Word16 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word16 CSize where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSize Word32 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word32 CSize where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSize Word64 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word64 CSize where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CWchar Int where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int CWchar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CWchar Int8 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int8 CWchar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CWchar Int16 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int16 CWchar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CWchar Int32 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int32 CWchar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CWchar Int64 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int64 CWchar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CWchar Word where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word CWchar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CWchar Word8 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word8 CWchar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CWchar Word16 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word16 CWchar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CWchar Word32 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word32 CWchar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CWchar Word64 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word64 CWchar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLLong Int where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int CLLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLLong Int8 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int8 CLLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLLong Int16 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int16 CLLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLLong Int32 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int32 CLLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLLong Int64 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int64 CLLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLLong Word where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word CLLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLLong Word8 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word8 CLLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLLong Word16 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word16 CLLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLLong Word32 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word32 CLLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLLong Word64 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word64 CLLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULLong Int where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int CULLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULLong Int8 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int8 CULLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULLong Int16 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int16 CULLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULLong Int32 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int32 CULLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULLong Int64 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Int64 CULLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULLong Word where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word CULLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULLong Word8 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word8 CULLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULLong Word16 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word16 CULLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULLong Word32 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word32 CULLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULLong Word64 where+    safeConvert = boundedConversion (return . fromIntegral)+instance Convertible Word64 CULLong where+    safeConvert = boundedConversion (return . fromIntegral)++-- Section 4+instance Convertible CChar CSChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CChar CUChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CChar CShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CChar CUShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CChar CInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CChar CUInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CChar CLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CChar CULong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CChar CSize where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CChar CWchar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CChar CLLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CChar CULLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSChar CChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSChar CUChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSChar CShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSChar CUShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSChar CInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSChar CUInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSChar CLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSChar CULong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSChar CSize where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSChar CWchar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSChar CLLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSChar CULLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUChar CChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUChar CSChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUChar CShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUChar CUShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUChar CInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUChar CUInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUChar CLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUChar CULong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUChar CSize where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUChar CWchar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUChar CLLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUChar CULLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CShort CChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CShort CSChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CShort CUChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CShort CUShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CShort CInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CShort CUInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CShort CLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CShort CULong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CShort CSize where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CShort CWchar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CShort CLLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CShort CULLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUShort CChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUShort CSChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUShort CUChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUShort CShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUShort CInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUShort CUInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUShort CLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUShort CULong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUShort CSize where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUShort CWchar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUShort CLLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUShort CULLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CInt CChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CInt CSChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CInt CUChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CInt CShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CInt CUShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CInt CUInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CInt CLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CInt CULong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CInt CSize where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CInt CWchar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CInt CLLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CInt CULLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUInt CChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUInt CSChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUInt CUChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUInt CShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUInt CUShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUInt CInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUInt CLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUInt CULong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUInt CSize where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUInt CWchar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUInt CLLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUInt CULLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLong CChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLong CSChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLong CUChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLong CShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLong CUShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLong CInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLong CUInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLong CULong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLong CSize where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLong CWchar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLong CLLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLong CULLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULong CChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULong CSChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULong CUChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULong CShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULong CUShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULong CInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULong CUInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULong CLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULong CSize where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULong CWchar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULong CLLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULong CULLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSize CChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSize CSChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSize CUChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSize CShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSize CUShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSize CInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSize CUInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSize CLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSize CULong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSize CWchar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSize CLLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSize CULLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CWchar CChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CWchar CSChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CWchar CUChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CWchar CShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CWchar CUShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CWchar CInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CWchar CUInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CWchar CLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CWchar CULong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CWchar CSize where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CWchar CLLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CWchar CULLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLLong CChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLLong CSChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLLong CUChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLLong CShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLLong CUShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLLong CInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLLong CUInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLLong CLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLLong CULong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLLong CSize where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLLong CWchar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLLong CULLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULLong CChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULLong CSChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULLong CUChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULLong CShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULLong CUShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULLong CInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULLong CUInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULLong CLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULLong CULong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULLong CSize where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULLong CWchar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULLong CLLong where+    safeConvert = boundedConversion (return . fromIntegral)++-- Section 5+instance Convertible CFloat CDouble where+    safeConvert = return . realToFrac++instance Convertible CFloat CLDouble where+    safeConvert = return . realToFrac++instance Convertible CDouble CFloat where+    safeConvert = return . realToFrac++instance Convertible CDouble CLDouble where+    safeConvert = return . realToFrac++instance Convertible CLDouble CFloat where+    safeConvert = return . realToFrac++instance Convertible CLDouble CDouble where+    safeConvert = return . realToFrac++-- Section 6+instance Convertible CFloat Integer where+    safeConvert = return . truncate+instance Convertible Integer CFloat where+    safeConvert = return . fromIntegral++instance Convertible CDouble Integer where+    safeConvert = return . truncate+instance Convertible Integer CDouble where+    safeConvert = return . fromIntegral++instance Convertible CLDouble Integer where+    safeConvert = return . truncate+instance Convertible Integer CLDouble where+    safeConvert = return . fromIntegral++-- Section 7+instance Convertible CChar Integer where+    safeConvert = return . fromIntegral+instance Convertible Integer CChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSChar Integer where+    safeConvert = return . fromIntegral+instance Convertible Integer CSChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUChar Integer where+    safeConvert = return . fromIntegral+instance Convertible Integer CUChar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CShort Integer where+    safeConvert = return . fromIntegral+instance Convertible Integer CShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUShort Integer where+    safeConvert = return . fromIntegral+instance Convertible Integer CUShort where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CInt Integer where+    safeConvert = return . fromIntegral+instance Convertible Integer CInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CUInt Integer where+    safeConvert = return . fromIntegral+instance Convertible Integer CUInt where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLong Integer where+    safeConvert = return . fromIntegral+instance Convertible Integer CLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULong Integer where+    safeConvert = return . fromIntegral+instance Convertible Integer CULong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CSize Integer where+    safeConvert = return . fromIntegral+instance Convertible Integer CSize where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CWchar Integer where+    safeConvert = return . fromIntegral+instance Convertible Integer CWchar where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CLLong Integer where+    safeConvert = return . fromIntegral+instance Convertible Integer CLLong where+    safeConvert = boundedConversion (return . fromIntegral)++instance Convertible CULLong Integer where+    safeConvert = return . fromIntegral+instance Convertible Integer CULLong where+    safeConvert = boundedConversion (return . fromIntegral)++-- Section 8o+instance Convertible CChar Char where+    safeConvert = boundedConversion (return . toEnum . fromIntegral)+instance Convertible Char CChar where+    safeConvert = boundedConversion (return . fromIntegral . fromEnum)++instance Convertible CSChar Char where+    safeConvert = boundedConversion (return . toEnum . fromIntegral)+instance Convertible Char CSChar where+    safeConvert = boundedConversion (return . fromIntegral . fromEnum)++instance Convertible CUChar Char where+    safeConvert = boundedConversion (return . toEnum . fromIntegral)+instance Convertible Char CUChar where+    safeConvert = boundedConversion (return . fromIntegral . fromEnum)++instance Convertible CShort Char where+    safeConvert = boundedConversion (return . toEnum . fromIntegral)+instance Convertible Char CShort where+    safeConvert = boundedConversion (return . fromIntegral . fromEnum)++instance Convertible CUShort Char where+    safeConvert = boundedConversion (return . toEnum . fromIntegral)+instance Convertible Char CUShort where+    safeConvert = boundedConversion (return . fromIntegral . fromEnum)++instance Convertible CInt Char where+    safeConvert = boundedConversion (return . toEnum . fromIntegral)+instance Convertible Char CInt where+    safeConvert = boundedConversion (return . fromIntegral . fromEnum)++instance Convertible CUInt Char where+    safeConvert = boundedConversion (return . toEnum . fromIntegral)+instance Convertible Char CUInt where+    safeConvert = boundedConversion (return . fromIntegral . fromEnum)++instance Convertible CLong Char where+    safeConvert = boundedConversion (return . toEnum . fromIntegral)+instance Convertible Char CLong where+    safeConvert = boundedConversion (return . fromIntegral . fromEnum)++instance Convertible CULong Char where+    safeConvert = boundedConversion (return . toEnum . fromIntegral)+instance Convertible Char CULong where+    safeConvert = boundedConversion (return . fromIntegral . fromEnum)++instance Convertible CSize Char where+    safeConvert = boundedConversion (return . toEnum . fromIntegral)+instance Convertible Char CSize where+    safeConvert = boundedConversion (return . fromIntegral . fromEnum)++instance Convertible CWchar Char where+    safeConvert = boundedConversion (return . toEnum . fromIntegral)+instance Convertible Char CWchar where+    safeConvert = boundedConversion (return . fromIntegral . fromEnum)++instance Convertible CLLong Char where+    safeConvert = boundedConversion (return . toEnum . fromIntegral)+instance Convertible Char CLLong where+    safeConvert = boundedConversion (return . fromIntegral . fromEnum)++instance Convertible CULLong Char where+    safeConvert = boundedConversion (return . toEnum . fromIntegral)+instance Convertible Char CULLong where+    safeConvert = boundedConversion (return . fromIntegral . fromEnum)+
Data/Convertible/Instances/Num.hs view
@@ -575,9 +575,9 @@     safeConvert = return . truncate  instance Convertible Float Double where-    safeConvert = return . fromRational . toRational+    safeConvert = return . realToFrac instance Convertible Double Float where-    safeConvert = return . fromRational . toRational+    safeConvert = return . realToFrac instance Convertible Float Rational where     safeConvert = return . toRational instance Convertible Rational Float where
Data/Convertible/Instances/Time.hs view
@@ -34,6 +34,7 @@ import Data.Time.Calendar.OrdinalDate import Data.Typeable import Data.Ratio+import Foreign.C.Types  ---------------------------------------------------------------------- -- Intra-System.Time stuff@@ -75,14 +76,14 @@ instance Convertible Int POSIXTime where     safeConvert = return . fromIntegral instance Convertible Double POSIXTime where-    safeConvert = return . fromRational . toRational+    safeConvert = return . realToFrac  instance Convertible POSIXTime Integer where     safeConvert = return . truncate instance Convertible POSIXTime Rational where     safeConvert = return . toRational instance Convertible POSIXTime Double where-    safeConvert = return . fromRational . toRational+    safeConvert = return . realToFrac instance Convertible POSIXTime Int where     safeConvert = boundedConversion (return . truncate) @@ -150,26 +151,23 @@ }  instance Convertible ST.CalendarTime POSIXTime where-    safeConvert a = do r <- (safeConvert a)::ConvertResult ST.ClockTime-                       safeConvert r+    safeConvert = convertVia (undefined::ST.ClockTime) instance Convertible ST.CalendarTime UTCTime where-    safeConvert a = do r <- (safeConvert a)::ConvertResult POSIXTime-                       safeConvert r+    safeConvert = convertVia (undefined::POSIXTime)  instance Convertible ST.ClockTime POSIXTime where     safeConvert (ST.TOD x y) = return $ fromRational $ -                                        fromInteger x `plusorminus` fromRational (y % 1000000000000)-        where plusorminus = if x < 0 then (-) else (+)+                                        fromInteger x + fromRational (y % 1000000000000) instance Convertible ST.ClockTime UTCTime where-    safeConvert a = do r <- (safeConvert a)::ConvertResult POSIXTime-                       safeConvert r+    safeConvert = convertVia (undefined::POSIXTime) instance Convertible ST.ClockTime ZonedTime where-    safeConvert a = do r <- (safeConvert a)::ConvertResult UTCTime-                       safeConvert r+    safeConvert = convertVia (undefined::UTCTime)+instance Convertible ZonedTime ST.ClockTime where+    safeConvert = convertVia (undefined::POSIXTime)  instance Convertible POSIXTime ST.ClockTime where     safeConvert x = return $ ST.TOD rsecs rpico-        where rsecs = (truncate x :: Integer)+        where rsecs = floor x               rpico = truncate $ abs $ 1000000000000 * (x - (fromIntegral rsecs)) instance Convertible UTCTime ST.ClockTime where     safeConvert = safeConvert . utcTimeToPOSIXSeconds@@ -182,9 +180,9 @@             ST.ctHour = todHour ltod,             ST.ctMin = todMin ltod,             ST.ctSec = secs,-            ST.ctPicosec = truncate $ (((toRational (todSec ltod) - (toRational secs)) * 1000000000000)::Rational),+            ST.ctPicosec = pico,             ST.ctWDay = toEnum . snd . sundayStartWeek . localDay . zonedTimeToLocalTime $ zt,-            ST.ctYDay = snd . toOrdinalDate . localDay . zonedTimeToLocalTime $ zt,+            ST.ctYDay = (snd . toOrdinalDate . localDay . zonedTimeToLocalTime $ zt) - 1,             ST.ctTZName = timeZoneName . zonedTimeZone $ zt,             ST.ctTZ = (timeZoneMinutes . zonedTimeZone $ zt) * 60,             ST.ctIsDST = timeZoneSummerOnly . zonedTimeZone $ zt@@ -192,9 +190,10 @@         where (year, month, day) = toGregorian . localDay . zonedTimeToLocalTime $ zt               ltod = localTimeOfDay . zonedTimeToLocalTime $ zt               secs = (truncate . todSec $ ltod)::Int+              picoRational = toRational (todSec ltod) - toRational secs+              pico = truncate (picoRational * 1000000000000) instance Convertible POSIXTime ST.CalendarTime where-    safeConvert pt = do r <- (safeConvert pt)::ConvertResult ZonedTime-                        safeConvert r+    safeConvert = convertVia (undefined::ZonedTime) instance Convertible UTCTime ST.CalendarTime where     safeConvert = safeConvert . utcTimeToPOSIXSeconds @@ -210,3 +209,55 @@     safeConvert ndt =         do clockt <- safeConvert ndt            return (ST.diffClockTimes clockt (ST.TOD 0 0))++instance Convertible Integer ST.TimeDiff where+    safeConvert = convertVia (undefined::NominalDiffTime)+instance Convertible ST.TimeDiff Integer where+    safeConvert = convertVia (undefined :: NominalDiffTime)+instance Convertible ST.TimeDiff Rational where+    safeConvert = convertVia (undefined :: NominalDiffTime)++----------------------------------------------------------------------+-- Foreign.C Types+----------------------------------------------------------------------++instance Convertible CTime POSIXTime where+    safeConvert = return . realToFrac+instance Convertible POSIXTime CTime where+    safeConvert = return . fromInteger . truncate++instance Convertible CTime Integer where+    safeConvert = return . truncate . toRational+instance Convertible Integer CTime where+    safeConvert = return . fromInteger++instance Convertible CTime Double where+    safeConvert = return . realToFrac+instance Convertible Double CTime where+    safeConvert = return . fromInteger . truncate++instance Convertible CTime Int where+    safeConvert x = do r1 <- safeConvert x+                       boundedConversion (return . fromInteger) r1+instance Convertible Int CTime where+    safeConvert = safeConvert . toInteger++instance Convertible CTime UTCTime where+    safeConvert = convertVia (undefined :: POSIXTime)+instance Convertible UTCTime CTime where+    safeConvert = convertVia (undefined :: POSIXTime)++instance Convertible CTime ST.ClockTime where+    safeConvert = convertVia (undefined :: POSIXTime)+instance Convertible ST.ClockTime CTime where+    safeConvert = convertVia (undefined :: POSIXTime)++instance Convertible CTime ST.CalendarTime where+    safeConvert = convertVia (undefined::POSIXTime)+instance Convertible ST.CalendarTime CTime where+    safeConvert = convertVia (undefined::POSIXTime)++instance Convertible CTime ZonedTime where+    safeConvert = convertVia (undefined::POSIXTime)+instance Convertible ZonedTime CTime where+    safeConvert = convertVia (undefined::POSIXTime)
Data/Convertible/Utils.hs view
@@ -19,7 +19,8 @@ -}  module Data.Convertible.Utils(boundedConversion,-                             mkTypeName+                             mkTypeName,+                             convertVia                              ) where import Data.Convertible.Base@@ -48,5 +49,33 @@                inp           else return result +{- | Useful for defining 'Typeable' instances.  Example:++>instance Typeable TimeOfDay where+>    typeOf _ = mkTypeName "TimeOfDay"+-} mkTypeName :: String -> TypeRep mkTypeName name = mkTyConApp (mkTyCon name) []++{- | 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                 -- ^ Dummy data to establish intermediate type - can be undefined+           -> a                 -- ^ Input value+           -> ConvertResult c   -- ^ Result+convertVia dummy inp =+    do r1 <- safeConvert inp+       safeConvert (asTypeOf r1 dummy)
convertible.cabal view
@@ -1,11 +1,11 @@ Name: convertible-Version: 1.0.0+Version: 1.0.1 License: LGPL Maintainer: John Goerzen <jgoerzen@complete.org> Author: John Goerzen Copyright: Copyright (c) 2009-2009 John Goerzen license-file: COPYRIGHT-extra-source-files: COPYING+extra-source-files: COPYING, utils/genCinstances.hs homepage: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/convertible Category: Data synopsis: Typeclasses and instances for converting between types@@ -25,7 +25,7 @@  implemented in terms of the safer function described above.  .  Convertible is also used by HDBC 2.0 for handling marshalling of- data to/from databases.+ data to and from databases.  .  Convertible is backed by an extensive test suite and passes tests  on GHC and Hugs.@@ -53,6 +53,7 @@                    Data.Convertible.Base,                    Data.Convertible.Utils,                    Data.Convertible.Instances,+                   Data.Convertible.Instances.C,                    Data.Convertible.Instances.Map,                    Data.Convertible.Instances.Num,                    Data.Convertible.Instances.Time
+ utils/genCinstances.hs view
@@ -0,0 +1,66 @@+cint = ["CChar", "CSChar", "CUChar", "CShort", "CUShort", "CInt", "CUInt", "CLong",+        "CULong", "CSize", "CWchar", "CLLong", "CULLong"]+cfloat = ["CFloat", "CDouble", "CLDouble"]+hsint = ["Int", "Int8", "Int16", "Int32", "Int64", "Word", "Word8", "Word16", "Word32",+         "Word64"]+hsfloat = ["Double", "Float", "Rational"]++printFP (f, i) = +    "instance Convertible " ++ f ++ " " ++ i ++ " where \n\+    \    safeConvert = boundedConversion (return . truncate)\n\+    \instance Convertible " ++ i ++ " " ++ f ++ " where \n\+    \    safeConvert = return . fromIntegral\n"++printIntegerF f =+    "instance Convertible " ++ f ++ " Integer where\n\+     \    safeConvert = return . truncate\n\+     \instance Convertible Integer " ++ f ++ " where\n\+     \    safeConvert = return . fromIntegral\n"++printIntegerI i =+    "instance Convertible " ++ i ++ " Integer where\n\+    \    safeConvert = return . fromIntegral\n\+    \instance Convertible Integer " ++ i ++ " where\n\+    \    safeConvert = boundedConversion (return . fromIntegral)\n"++printCharI i =+    "instance Convertible " ++ i ++ " Char where\n\+    \    safeConvert = boundedConversion (return . toEnum . fromIntegral)\n\+    \instance Convertible Char " ++ i ++ " where\n\+    \    safeConvert = boundedConversion (return . fromIntegral . fromEnum)\n"++printFP1 (f1, f2) = +    "instance Convertible " ++ f1 ++ " " ++ f2 ++ " where\n\+    \    safeConvert = return . realToFrac\n"++printFPFP (f1, f2) = printFP1 (f1, f2) ++ printFP1 (f2, f1)++printInt (i1, i2) =+    "instance Convertible " ++ i1 ++ " " ++ i2 ++ " where\n\+    \    safeConvert = boundedConversion (return . fromIntegral)\n"++printIntInt (i1, i2) = printInt (i1, i2) ++ printInt (i2, i1)++main = do putStrLn "-- Section 1"+          mapM_ (putStrLn . printFP) (concatMap (\x -> map (\y -> (x, y)) hsint) cfloat)+          putStrLn "-- Section 2"+          mapM_ (putStrLn . printFPFP) (concatMap (\x -> map (\y -> (x, y)) hsfloat) cfloat)+          putStrLn "-- Section 3"+          mapM_ (putStrLn . printIntInt) (concatMap (\x -> map (\y -> (x, y)) hsint) cint)+          putStrLn "-- Section 4"+          mapM_ (putStrLn . printInt) . filter (\(a, b) -> a /= b) $ +                (concatMap (\x -> map (\y -> (x, y)) cint) cint)+          putStrLn "-- Section 5"+          mapM_ (putStrLn . printFP1) . filter (\(a, b) -> a /= b) $+                (concatMap (\x -> map (\y -> (x, y)) cfloat) cfloat)+          putStrLn "-- Section 6"+          mapM_ (putStrLn . printIntegerF) cfloat+          putStrLn "-- Section 7"+          mapM_ (putStrLn . printIntegerI) cint+          putStrLn "-- Section 8o"+          mapM_ (putStrLn . printCharI) cint+++++