constrained-categories: Constrained clones of the category-theory type classes, using ConstraintKinds.

[ control, gpl, library ] [ Propose Tags ]

Haskell has, and makes great use of, powerful facilities from category theory – basically various variants of functors.

However, all those are just endofunctors in Hask, the category of all Haskell types with functions as morphisms. Which is sufficient for container / control structures that you want to be able to handle any type of data, but otherwise it's a bit limiting, seeing as there are (in maths, science etc.) many categories that cannot properly be represented this way. Commonly used libraries such as http://hackage.haskell.org/package/vector-space thus make little notion of the fact that the objects they deal with actually form a category, instead defining just specialised versions of the operations.

This library generalises functors etc. to a much wider class of categories, by allowing for constraints on objects (so these can have extra properties required). At the same time, we try to keep as close as possible to the well-known Haskell type class hierarchies rather than exactly adopting the mathematicians' notions.

Consider the README file, the examples, and/or the documentation to Control.Category.Constrained for how to make use of this.

Versions [faq] 0.1.0.0, 0.2.0.0, 0.2.1.0, 0.2.1.1, 0.2.5.1, 0.3.0.0, 0.3.0.1, 0.3.1.0, 0.3.1.1, 0.4.0.0
Dependencies base (>=4.7 && <5), contravariant, semigroups, tagged, trivial-constraint (==0.4.*), void [details]
License GPL-3.0-only
Author Justus Sagemüller
Maintainer (@) jsag $ hvl.no
Revised Revision 1 made by leftaroundabout at Fri Jul 12 09:39:03 UTC 2019
Category control
Home page https://github.com/leftaroundabout/constrained-categories
Source repo head: git clone git://github.com/leftaroundabout/constrained-categories.git
Uploaded by leftaroundabout at Mon Jun 3 10:05:31 UTC 2019
Distributions NixOS:0.4.0.0
Downloads 4989 total (306 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2019-06-03 [all 1 reports]

Modules

[Index] [Quick Jump]

Downloads

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

Maintainer's Corner

For package maintainers and hackage trustees