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.


[Skip to Readme]

Properties

Versions 0.1.0.0, 0.1.1.0
Change log CHANGELOG.md
Dependencies base (==4.*) [details]
License BSD3
Copyright 2014 Jasper Van der Jeugt
Author Jasper Van der Jeugt <m@jaspervdj.be>
Maintainer Jasper Van der Jeugt <m@jaspervdj.be>
Category Acme
Home page https://github.com/jaspervdj/acme-cofunctor
Source repository head: git clone https://github.com/jaspervdj/acme-cofunctor
Uploaded Sat May 13 10:15:09 UTC 2017 by JasperVanDerJeugt
Distributions NixOS:0.1.1.0
Downloads 406 total (13 in the last 30 days)
Rating 2.0 (1 ratings) [clear rating]
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2017-05-13 [all 1 reports]
Hackage Matrix CI

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for acme-cofunctor-0.1.1.0

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