packages feed

acme-cofunctor-0.1.0.0: acme-cofunctor.cabal

Name:          acme-cofunctor
Version:       0.1.0.0
Synopsis:      A Cofunctor is a structure from category theory dual to Functor
License:       BSD3
License-file:  LICENSE
Author:        Jasper Van der Jeugt <m@jaspervdj.be>
Maintainer:    Jasper Van der Jeugt <m@jaspervdj.be>
Copyright:     2014 Jasper Van der Jeugt
Category:      Acme
Build-type:    Simple
Cabal-version: >= 1.10
Homepage:      https://github.com/jaspervdj/acme-cofunctor

Description:
  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.

Library
  Exposed-modules:  Data.Cofunctor
  default-language: Haskell98
  Ghc-options:      -Wall
  Hs-source-dirs:   src

  Build-depends:
    base >= 4 && < 5

Source-repository head
  Type:     git
  Location: https://github.com/jaspervdj/acme-cofunctor