
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 