arrows-0.4.4.2: Arrow classes and transformers

Copyright(c) Ross Paterson 2003
LicenseBSD-style (see the LICENSE file in the distribution)
Maintainerross@soi.city.ac.uk
Stabilityexperimental
Portabilityportable
Safe HaskellSafe
LanguageHaskell98

Control.Arrow.Transformer

Description

Arrow transformers, for making new arrow types out of old ones.

Synopsis

Documentation

class (Arrow a, Arrow (f a)) => ArrowTransformer f a where Source #

Construct a new arrow from an existing one.

Minimal complete definition

lift

Methods

lift :: a b c -> f a b c Source #

A transformation of arrows, preserving arr, >>> and first.

Typical usage in arrow notation:

   proc p -> ...
       (|lift cmd|)

Instances

Arrow a => ArrowTransformer Automaton a Source # 

Methods

lift :: a b c -> Automaton a b c Source #

Arrow a => ArrowTransformer StreamArrow a Source # 

Methods

lift :: a b c -> StreamArrow a b c Source #

ArrowChoice a => ArrowTransformer (ErrorArrow ex) a Source # 

Methods

lift :: a b c -> ErrorArrow ex a b c Source #

Arrow a => ArrowTransformer (ReaderArrow r) a Source # 

Methods

lift :: a b c -> ReaderArrow r a b c Source #

Arrow a => ArrowTransformer (StateArrow s) a Source # 

Methods

lift :: a b c -> StateArrow s a b c Source #

(Arrow a, Applicative f) => ArrowTransformer (StaticArrow f) a Source # 

Methods

lift :: a b c -> StaticArrow f a b c Source #

(Arrow a, Monoid w) => ArrowTransformer (WriterArrow w) a Source # 

Methods

lift :: a b c -> WriterArrow w a b c Source #