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
- transformFormlet :: Monad m => (b -> a) -> Formlet m i e v a -> Transformer m e a b -> Formlet 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
- required :: Monad m => e -> Transformer m e (Maybe a) 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
:: Monad m | |
=> (b -> a) | Needed to produce defaults |
-> Formlet m i e v a | Formlet to transform |
-> Transformer m e a b | Transformer |
-> Formlet m i e v b | Resulting formlet |
Apply a transformer to a formlet
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