|
Data.Convertible.Utils | Portability | portable | Stability | provisional | Maintainer | Michael Snoyman <michael@snoyman.com> |
|
|
|
Description |
|
|
Synopsis |
|
|
|
Documentation |
|
|
:: (Ord a, Bounded b, Show a, Show b, ConvertAttempt a Integer, ConvertAttempt b Integer, Typeable a, Typeable b) | | => a -> Attempt b | Function to do the conversion
| -> a | Input data
| -> Attempt b | Result
| Utility function to perform bounds checking as part of a conversion.
Does this be examining the bounds of the destination type, converting to the type of
the source via safeConvert, comparing to the source value. Results in an error
if the conversion is out of bounds.
|
|
|
data ConvertBoundsException v a | Source |
|
Constructors | ConvertBoundsException v v a | |
| Instances | |
|
|
|
Useful for defining Typeable instances. Example:
instance Typeable TimeOfDay where
typeOf _ = mkTypeName "TimeOfDay"
|
|
|
:: (ConvertAttempt a b, ConvertAttempt b c) | | => b | Dummy data to establish intermediate type - can be undefined
| -> a | Input value
| -> Attempt c | Result
| 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.
|
|
|
|
|
|
Produced by Haddock version 2.4.2 |