Optionally failing transformers for forms
- newtype Transformer m e a b = Transformer {
- unTransformer :: a -> m (Either [e] b)
- transform :: Monad m => Form m i e v a -> Transformer m e a b -> Form m i e v b
- transformEither :: Monad m => (a -> Either e b) -> Transformer m e a b
- transformEitherM :: Monad m => (a -> m (Either e b)) -> Transformer m e a b
- transformRead :: (Monad m, Read a) => e -> Transformer m e String a
Documentation
newtype Transformer m e a b Source
A transformer that transforms a value of type a to a value of type b
Transformer | |
|
Monad m => Arrow (Transformer m e) | |
Monad m => Category (Transformer m e) |
transform :: Monad m => Form m i e v a -> Transformer m e a b -> Form m i e v bSource
Apply a transformer to a form
transformEither :: Monad m => (a -> Either e b) -> Transformer m e a bSource
Build a transformer from a simple function that returns an Either
result.
transformEitherM :: Monad m => (a -> m (Either e b)) -> Transformer m e a bSource
A monadic version of transformEither
:: (Monad m, Read a) | |
=> e | Error given if read fails |
-> Transformer m e String a | Resulting transformer |
Create a transformer for any value of type a that is an instance of Read