The Functor class is used for types that can be mapped over. Instances of Functor should satisfy the following laws:
> fmap id == id
> fmap (f . g) == fmap f . fmap g
The instances of Functor for lists, Data.Maybe.Maybe and System.IO.IO satisfy these laws.
Functors: uniform action over a parameterized type, generalizing the map function on lists.
This package has been subsumed by semigroupoids
Simple functor combinators, their derivatives, and their use for tries Maybe split out derivatives and/or tries later.
This is the Data.FunctorM module from 6.6's base, deleted from HEAD still used by some projects (notably jhc); this package can be used for compatibility.
Alternative syntax for Functor and Applicative. Includes Caleskell idioms like (.) = fmap, and also extensions like (.:) = fmap . fmap and (&) = (*).
Haskell 98 bifunctors
This library provides a Cofunctor class useful for types that are sinks or make use of IO effects. See documentation for details. Some supporting constructions are also provided.
This package allows you to run a form created by digestive functors against a JSON document that has been parsed by Aeson.
For changes, please see http:github.comocharleschangelog.md
Blaze frontend for the digestive-functors library
Happstack backend for the digestive-functors library
Heist frontend for the digestive-functors library
This is an HSP frontend for the digestive-functors library.
Snap backend for the digestive-functors library
A free functor is a left adjoint to a forgetful functor. It used to be the case that the only category that was easy to work with in Haskell was Hask itself, so there were no interesting forgetful functors.
But the new ConstraintKinds feature of GHC provides an easy way of creating subcategories of Hask. That brings interesting opportunities for free (and cofree) functors.
The examples directory contains an implementation of non-empty lists as free semigroups, and automata as free actions. The standard example of free higher order functors is free monads, and this definition can be found in Data.Functor.HFree.
This package provides a number of utilities and constructions that arise when working with profunctors that require minor extensions to Haskell 98.
Haskell 98 Profunctors
This package has been absorbed into profunctor-extras.
This package contains Control.Applicative, Data.Foldable, Data.Traversable from 6.8's base for use in earlier GHC versions
Homogeneous tuples (also known as vectors), with various instances, most notably Functor and Applicative. The primary goal of the library is to help functor-oriented programming (for low-dimensional linear algebra, there are more specific packages, eg. vect). A small preprocessor for a tuple syntax is also included. We also provide a different implementation using type-level programming.
Functor-lazy vectors perform the fmap operation in constant time, whereas other vectors require linear time. All vector operations are supported except for slicing. See http://github.com/mikeizbicki/vector-funxtorlazy for details on how this module works under the hood.