functor-combinators: Tools for functor combinator-based program design
Tools for working with functor combinators: types that take functors (or other indexed types) and returns a new functor that "enhances" or "mixes" them in some way. In the process, you can design featureful programs by composing smaller "primitives" using basic unversal combinators.
The main entry point is Data.Functor.Combinators, but more fine-grained functionality and extra combinators (some of them re-implementations for compatibility) are available in other modules as well.
This library does not define new functor combinators for the most part, but rather re-exports them from different parts of the Haskell ecosystem and provides a uniform interface.
See the README for a quick overview, and also https://blog.jle.im/entry/functor-combinatorpedia.html for an in-depth dive into the motivation behind functor combinator-driven development, examples of the functor combinators in this library, and details about how to use these abstractions!
[Skip to Readme]
|Versions [faq]||0.1.0.0, 0.1.0.1, 0.1.1.0, 0.1.1.1, 0.2.0.0|
|Dependencies||base (>=4.12 && <5), bifunctors, comonad, constraints, containers, deriving-compat, free, kan-extensions, mmorph, mtl, natural-transformation, nonempty-containers, pointed, profunctors, recursion-schemes, semigroupoids, tagged, these, transformers, trivial-constraint (>=0.5.1), vinyl [details]|
|Copyright||(c) Justin Le 2019|
|Revised||Revision 1 made by jle at Wed Jun 19 17:54:43 UTC 2019|
|Source repo||head: git clone https://github.com/mstksg/functor-combinators|
|Uploaded||by jle at Wed Jun 19 17:39:01 UTC 2019|
|Downloads||1332 total (202 in the last 30 days)|
|Rating||(no votes yet) [estimated by Bayesian average]|
Docs available [build log]
Last success reported on 2019-06-19 [all 1 reports]
- functor-combinators-0.1.0.0.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.
For package maintainers and hackage trustees