digestive-functors-0.2.0.1: A general way to consume input using applicative functors

Text.Digestive.Transform

Description

Optionally failing transformers for forms

Synopsis

Documentation

newtype Transformer m e a b Source

A transformer that transforms a value of type a to a value of type b

Constructors

Transformer 

Fields

unTransformer :: a -> m (Either [e] b)
 

Instances

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

transformFormletSource

Arguments

:: 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

transformReadSource

Arguments

:: (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

requiredSource

Arguments

:: Monad m 
=> e

error to return if value is Nothing

-> Transformer m e (Maybe a) a 

A transformer that converts 'Maybe a' to a.