Skip to content
A Cofunctor is a structure from category theory dual to Functor
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src/Data
.gitignore
CHANGELOG.md
LICENSE
README.md
Setup.hs
acme-cofunctor.cabal

README.md

acme-cofunctor

A Cofunctor is a structure from category theory dual to Functor.

We all know that a Functor is defined by the operation 'fmap':

fmap :: (a -> b) -> (f a -> f b)

This means that its dual must be defined by the following operation:

cofmap :: (b -> a) -> (f b -> f a)

Since beginning his investigations, the author of this package has discovered that this pattern is at least as commonly used as Functor. In fact, many ubiquitous Haskell types (e.g. [], Maybe, ((->) a) turn out to have a Cofunctor instance.

You can’t perform that action at this time.