# The acme-cofunctor package

[ Tags: acme, bsd3, library ] [ Propose Tags ]

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

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.

## Properties

Versions 0.1.0.0, 0.1.1.0 CHANGELOG.md base (==4.*) [details] BSD3 2014 Jasper Van der Jeugt Jasper Van der Jeugt Jasper Van der Jeugt Acme https://github.com/jaspervdj/acme-cofunctor head: git clone https://github.com/jaspervdj/acme-cofunctor Sat May 13 10:15:09 UTC 2017 by JasperVanDerJeugt NixOS:0.1.1.0 441 total (18 in the last 30 days) 2.0 (votes: 2) [estimated by rule of succession] λ λ λ Docs available Last success reported on 2017-05-13 Hackage Matrix CI

## Modules

[Index]

#### Maintainer's Corner

For package maintainers and hackage trustees

[back to package description]

# 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.