|
| Control.Functor | | Portability | portable | | Stability | experimental | | Maintainer | zednenem@psualum.com |
|
|
|
|
|
| Description |
Functor composition, standard functors, and more.
Note: declares functor instance for ((,) a)
|
|
| Synopsis |
|
|
|
|
| Unary functors |
|
| Composition |
|
| newtype O f g a |
Functor composition.
(Note: Some compilers will let you write f `O` g rather than O f g;
we'll be doing so here for readability.)
Functor composition is associative, so f `O` (g `O` h) and (f `O` g) `O` h
are equivalent. The functions lComp and rComp convert between the two.
(Operationally, they are equivalent to id. Their only purpose is to affect
the type system.)
| | Constructors | | | Instances | |
|
|
| lComp :: Functor f => O f (O g h) a -> O (O f g) h a |
|
| rComp :: Functor f => O (O f g) h a -> O f (O g h) a |
|
| Basic instances |
|
| Id |
|
| newtype Id a |
| The identity functor (or a reasonable facsimile thereof).
| | Constructors | | | Instances | |
|
|
| Unit |
|
| data Unit a |
The unit functor.
(Note: this is not the same as (). In fact, Unit is the
fixpoint of ().)
| | Constructors | | | Instances | |
|
|
| Const |
|
| data Const t a |
| Constant functors. Essentially the same as Unit, except that they also
carry a value.
| | Constructors | | | Instances | |
|
|
| Binary functors |
|
| class Bifunctor f where |
A type constructor which takes two arguments and an associated map function.
Informally, Bifunctor f implies Functor (f a) with fmap = bimap id.
| | | Methods | | bimap :: (a -> c) -> (b -> d) -> f a b -> f c d |
| | | Instances | |
|
|
| Trinary functors |
|
| class Trifunctor f where |
A type constructor which takes three arguments and an associated map function.
Informally, Trifunctor f implies Bifunctor (f a) with bimap = trimap id.
| | | Methods | | trimap :: (a -> a') -> (b -> b') -> (c -> c') -> f a b c -> f a' b' c' |
| | | Instances | |
|
|
| Produced by Haddock version 0.6 |