arrows-0.4.4.2: Arrow classes and transformers

Copyright | (c) Ross Paterson 2003
License | BSD-style (see the LICENSE file in the distribution)
Maintainer | ross@soi.city.ac.uk
Stability | experimental
Portability | portable
Safe Haskell | Safe
Language | Haskell98

Control.Arrow.Transformer

Description

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

Synopsis

- class (Arrow a, Arrow (f a)) => ArrowTransformer f a where
  - lift :: a b c -> f a b c

# Documentation

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

Construct a new arrow from an existing one.

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

Instances details

Arrow a => ArrowTransformer Automaton a Source # |
Instance details Defined in Control.Arrow.Transformer.Automaton Methods lift :: a b c -> Automaton a b c Source #
Arrow a => ArrowTransformer StreamArrow a Source # |
Instance details Defined in Control.Arrow.Transformer.Stream Methods lift :: a b c -> StreamArrow a b c Source #
ArrowChoice a => ArrowTransformer (ErrorArrow ex) a Source # |
Instance details Defined in Control.Arrow.Transformer.Error Methods lift :: a b c -> ErrorArrow ex a b c Source #
Arrow a => ArrowTransformer (ReaderArrow r) a Source # |
Instance details Defined in Control.Arrow.Transformer.Reader Methods lift :: a b c -> ReaderArrow r a b c Source #
Arrow a => ArrowTransformer (StateArrow s) a Source # |
Instance details Defined in Control.Arrow.Transformer.State Methods lift :: a b c -> StateArrow s a b c Source #
(Arrow a, Applicative f) => ArrowTransformer (StaticArrow f) a Source # |
Instance details Defined in Control.Arrow.Transformer.Static Methods lift :: a b c -> StaticArrow f a b c Source #
(Arrow a, Monoid w) => ArrowTransformer (WriterArrow w) a Source # |
Instance details Defined in Control.Arrow.Transformer.Writer Methods lift :: a b c -> WriterArrow w a b c Source #