proarrow: Category theory with a central role for profunctors
A library for doing category theory in Haskell with profunctors, rather
than functors, as the central abstraction. Every Haskell kind carries at
most one category structure (chosen via CategoryOf), newtype wrappers on
kinds give variant categories, and functors are encoded as representable
profunctors. On top of this the library provides monoidal structure,
(co)limits, adjunctions, Kan extensions, promonads, and a full
profunctor-optics hierarchy.
.
Import Proarrow to get started; Proarrow.Core explains the design of the
core abstractions in depth. The public sublibrary proarrow:testing provides
generic law-checking properties for testing your own categories.
[Skip to Readme]
library proarrow
Modules
[Index]
- Proarrow
- Proarrow.Adjunction
- Category
- Proarrow.Category.Enriched
- Instance
- Proarrow.Category.Instance.Bool
- Proarrow.Category.Instance.Collage
- Proarrow.Category.Instance.Constraint
- Proarrow.Category.Instance.Coproduct
- Proarrow.Category.Instance.Cospan
- Proarrow.Category.Instance.Cost
- Proarrow.Category.Instance.Discrete
- Proarrow.Category.Instance.Duploid
- Proarrow.Category.Instance.Fam
- Proarrow.Category.Instance.FinHask
- Proarrow.Category.Instance.FinRel
- Proarrow.Category.Instance.FinSet
- Proarrow.Category.Instance.Free
- Proarrow.Category.Instance.Graph
- Proarrow.Category.Instance.Hask
- Proarrow.Category.Instance.IntConstruction
- Proarrow.Category.Instance.Kleisli
- Proarrow.Category.Instance.Linear
- Proarrow.Category.Instance.Mat
- Proarrow.Category.Instance.Monoid
- Proarrow.Category.Instance.Nat
- Proarrow.Category.Instance.Opposite
- Proarrow.Category.Instance.Ordinal
- Proarrow.Category.Instance.Paths
- Proarrow.Category.Instance.PointedHask
- Proarrow.Category.Instance.Product
- Proarrow.Category.Instance.Prof
- Proarrow.Category.Instance.Rel
- Proarrow.Category.Instance.Rep
- Proarrow.Category.Instance.Simplex
- Proarrow.Category.Instance.Span
- Proarrow.Category.Instance.Sub
- Proarrow.Category.Instance.Unit
- Proarrow.Category.Instance.ZX
- Proarrow.Category.Instance.Zero
- Proarrow.Category.Internal
- Proarrow.Category.Monoidal
- Proarrow.Category.Monoidal.Action
- Proarrow.Category.Monoidal.Applicative
- Proarrow.Category.Monoidal.Cartesian
- Proarrow.Category.Monoidal.Closed
- Proarrow.Category.Monoidal.Coclosed
- Proarrow.Category.Monoidal.CompactClosed
- Proarrow.Category.Monoidal.CopyDiscard
- Proarrow.Category.Monoidal.Distributive
- Proarrow.Category.Monoidal.EndoProf
- Proarrow.Category.Monoidal.Hypergraph
- Proarrow.Category.Monoidal.Rev
- Proarrow.Category.Monoidal.StarAutonomous
- Proarrow.Category.Monoidal.Strength
- Proarrow.Category.Monoidal.Strictified
- Proarrow.Category.Promonoidal
- Proarrow.Category.Sheaf
- Proarrow.Category.Topos
- Proarrow.Colimit
- Proarrow.Core
- Proarrow.Functor
- Proarrow.Limit
- Proarrow.Monoid
- Proarrow.Object
- Proarrow.Optic
- Proarrow.Optic.Action
- Proarrow.Optic.AffineFold
- Proarrow.Optic.AffineTraversal
- Proarrow.Optic.Day
- Proarrow.Optic.Fold
- Proarrow.Optic.Getter
- Proarrow.Optic.Glass
- Proarrow.Optic.Grate
- Proarrow.Optic.Iso
- Proarrow.Optic.Kaleidoscope
- Proarrow.Optic.Lens
- Proarrow.Optic.MonoidalLens
- Proarrow.Optic.MonoidalTraversal
- Proarrow.Optic.PowerGrate
- Proarrow.Optic.Prism
- Proarrow.Optic.Prod
- Proarrow.Optic.Setter
- Proarrow.Optic.Sum
- Proarrow.Optic.Tracer
- Proarrow.Optic.Traversal
- Proarrow.Optics
- Proarrow.Path
- Profunctor
- Proarrow.Profunctor.Cofree
- Proarrow.Profunctor.Corepresentable
- Proarrow.Profunctor.Free
- Instance
- Proarrow.Profunctor.Instance.Adj
- Proarrow.Profunctor.Instance.Arrow
- Proarrow.Profunctor.Instance.Cocone
- Proarrow.Profunctor.Instance.Composition
- Proarrow.Profunctor.Instance.Cone
- Proarrow.Profunctor.Instance.Constant
- Proarrow.Profunctor.Instance.Coproduct
- Proarrow.Profunctor.Instance.Costar
- Proarrow.Profunctor.Instance.Coyoneda
- Proarrow.Profunctor.Instance.Day
- Proarrow.Profunctor.Instance.Direp
- Proarrow.Profunctor.Instance.Edges
- Proarrow.Profunctor.Instance.Exponential
- Proarrow.Profunctor.Instance.Fix
- Proarrow.Profunctor.Instance.Fold
- Proarrow.Profunctor.Instance.HaskValue
- Proarrow.Profunctor.Instance.Identity
- Proarrow.Profunctor.Instance.Initial
- Proarrow.Profunctor.Instance.List
- Proarrow.Profunctor.Instance.PastroTambara
- Proarrow.Profunctor.Instance.Product
- Proarrow.Profunctor.Instance.Ran
- Proarrow.Profunctor.Instance.Rift
- Proarrow.Profunctor.Instance.Sieve
- Proarrow.Profunctor.Instance.Star
- Proarrow.Profunctor.Instance.Terminal
- Proarrow.Profunctor.Instance.Wrapped
- Proarrow.Profunctor.Instance.Yoneda
- Proarrow.Profunctor.Representable
- Proarrow.Promonad
- Proarrow.Squares
- Tools
- Proarrow.Universal
library proarrow:testing
Downloads
- proarrow-0.1.0.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
| Versions [RSS] | 0.1.0.0 |
|---|---|
| Change log | CHANGELOG.md |
| Dependencies | base (>=4.20 && <5), containers (>=0.6 && <0.9), data-default (>=0.7 && <0.9), falsify (>=0.4 && <0.5), fin (>=0.3.2 && <1), proarrow, tasty (>=1.4 && <1.6), tasty-falsify (>=0.1 && <0.2), universe-base (>=1.1.4 && <1.2), vec (>=0.5.1 && <1) [details] |
| Tested with | ghc ==9.10.3 || ==9.12.2 |
| License | BSD-3-Clause |
| Author | Sjoerd Visscher |
| Maintainer | sjoerd@w3future.com |
| Uploaded | by SjoerdVisscher at 2026-09-28T14:13:18Z |
| Category | Math, Categories |
| Home page | https://github.com/sjoerdvisscher/proarrow |
| Bug tracker | https://github.com/sjoerdvisscher/proarrow/issues |
| Distributions | |
| Downloads | 5 total (5 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating | |
| Status | Docs uploaded by user Build status unknown [no reports yet] |