category-extras-0.53.5: Various modules and constructs inspired by category theory

Portabilitynon-portable (rank-2 polymorphism)
Stabilityexperimental
MaintainerEdward Kmett <ekmett@gmail.com>

Control.Functor.Extras

Description

 

Synopsis

Documentation

type Dist f g = forall a. f (g a) -> g (f a)Source

type :~> f g = forall a. f a -> g aSource

A natural transformation between functors f and g.

type Natural f g = f :~> gSource

type :~~> f g = forall a b. f a b -> g a bSource

A transformation natural in both sides of a bifunctor.

type Dinatural f g = forall a. f a a -> g a aSource

Dinatural transformations

class PostFold m f whereSource

Methods

postFold :: f (m (f a)) -> m (f a)Source

class PostUnfold w f whereSource

Methods

postUnfold :: w (f a) -> f (w (f a))Source

class PreFold f m whereSource

Methods

preFold :: f (m (f a)) -> f (m a)Source

class PreUnfold f w whereSource

Methods

preUnfold :: f (w a) -> f (w (f a))Source

class Distributes f g whereSource

Methods

dist :: f (g a) -> g (f a)Source

class Functor f => FunctorZero f whereSource

Methods

fzero :: f aSource

class FunctorZero f => FunctorPlus f whereSource

Methods

fplus :: f a -> f a -> f aSource

class Functor f => FunctorSplit f whereSource

Methods

fsplit :: f a -> (f a, f a)Source

Instances