Data.Convertible.Base

convertible-1.1.1.0: Typeclasses and instances for converting between types

Copyright | Copyright (C) 2009-2011 John Goerzen
License | BSD3
Maintainer | John Goerzen <jgoerzen@complete.org>
Stability | provisional
Portability | portable
Safe Haskell | Safe
Language | Haskell98

Data.Convertible.Base

Contents

- The conversion process
- Handling the results

Description

Synopsis

- convert :: Convertible a b => a -> b
- class Convertible a b where
  - safeConvert :: a -> ConvertResult b
- type ConvertResult a = Either ConvertError a
- data ConvertError = ConvertError {
  - convSourceValue :: String
  - convSourceType :: String
  - convDestType :: String
  - convErrorMessage :: String
  }
- convError :: (Show a, Typeable a, Typeable b) => String -> a -> ConvertResult b
- prettyConvertError :: ConvertError -> String

# The conversion process

convert :: Convertible a b => a -> b

Convert from one type of data to another. Raises an exception if there is an error with the conversion. For a function that does not raise an exception in that case, see `safeConvert`.

class Convertible a b where

A typeclass that represents something that can be converted. A `Convertible a b` instance represents an `a` that can be converted to a `b`.

Methods

safeConvert :: a -> ConvertResult b

Convert `a` to `b`, returning Right on success and Left on error. For a simpler interface, see `convert`.

# Handling the results

type ConvertResult a = Either ConvertError a

The result of a safe conversion via `safeConvert`.

data ConvertError

How we indicate that there was an error.

Constructors

ConvertError |
Fields convSourceValue :: String convSourceType :: String convDestType :: String convErrorMessage :: String

Instances

Eq ConvertError |
Read ConvertError |
Show ConvertError |
Error ConvertError |

convError :: (Show a, Typeable a, Typeable b) => String -> a -> ConvertResult b

prettyConvertError :: ConvertError -> String