úÎ#9"T     portable provisional$John Goerzen <jgoerzen@complete.org> *How we indicate that there was an error. =A typeclass that represents something that can be converted. A Convertible a b instance represents an a that can be converted to a b. Convert a to b0, returning Right on success and Left on error. $ For a simpler interface, see  . $The result of a safe conversion via . KConvert from one type of data to another. Raises an exception if there is Oan error with the conversion. For a function that does not raise an exception in that case, see .     portable provisional$John Goerzen <jgoerzen@complete.org> EUtility function to perform bounds checking as part of a conversion. UDoes this be examining the bounds of the destination type, converting to the type of the source via 6, comparing to the source value. Results in an error %if the conversion is out of bounds. Function to do the conversion  Input data Result Useful for defining  instances. Example: "instance Typeable TimeOfDay where & typeOf _ = mkTypeName "TimeOfDay" GUseful for defining conversions that are implemented in terms of other 2conversions via an intermediary type. Instead of:  2instance Convertible CalendarTime POSIXTime where * safeConvert a = do r <- safeConvert a 4 safeConvert (r :: ClockTime) we can now write:  2instance Convertible CalendarTime POSIXTime where 4 safeConvert = convertVia (undefined::ClockTime) Lwhich does the same thing -- converts a CalendarTime to a ClockTime, then a .ClockTime to a POSIXTime, both using existing  instances. =Dummy data to establish intermediate type - can be undefined  Input value Result    portable provisional$John Goerzen <jgoerzen@complete.org>portable provisional$John Goerzen <jgoerzen@complete.org>portable provisional$John Goerzen <jgoerzen@complete.org>portable provisional$John Goerzen <jgoerzen@complete.org>portable provisional$John Goerzen <jgoerzen@complete.org>portable provisional$John Goerzen <jgoerzen@complete.org>       convertible-1.0.8Data.Convertible.BaseData.Convertible.UtilsData.Convertible.Instances.MapData.Convertible.Instances.NumData.Convertible.Instances.CData.Convertible.Instances.TimeData.Convertible.InstancesData.Convertible ConvertErrorconvSourceValueconvSourceType convDestTypeconvErrorMessage Convertible safeConvert ConvertResultconvert convErrorprettyConvertErrorboundedConversion mkTypeName convertVia convError'base Data.TypeableTypeable