 | category-extras-0.50.3: Various modules and constructs inspired by category theory | Contents | Index |
|
Control.Functor.KanExtension | Portability | non-portable (rank-2 polymorphism) | Stability | experimental | Maintainer | Edward Kmett <ekmett@gmail.com> |
|
|
|
Description |
Left and right Kan extensions, expressed as higher order functors
Included is the 'monad generated by a functor' Ran f f
and the comonad cogenerated by a functor Lan f f.
|
|
Synopsis |
|
|
|
Documentation |
|
newtype Ran g h a |
Right Kan Extension
| Constructors | Ran | | runRan :: forall b. (a -> g b) -> h b | |
|
| Instances | |
|
|
toRan :: (Composition o, Functor k) => ((k `o` g) :~> h) -> k :~> Ran g h |
|
fromRan :: Composition o => (k :~> Ran g h) -> (k `o` g) :~> h |
|
data Lan g h a |
Left Kan Extension
| Constructors | forall b . Lan (g b -> a) (h b) | |
| Instances | |
|
|
toLan :: (Composition o, Functor f) => (h :~> (f `o` g)) -> Lan g h :~> f |
|
fromLan :: Composition o => (Lan g h :~> f) -> h :~> (f `o` g) |
|
rep :: Monad m => m a -> Ran m m a |
See http://wwwtcs.inf.tu-dresden.de/%7Evoigt/mpc08.pdf
|
|
abs :: Monad m => Ran m m a -> m a |
|
corep :: Comonad w => Lan w w a -> w a |
|
coabs :: Comonad w => w a -> Lan w w a |
|
Produced by Haddock version 2.1.0 |