proarrow-0.1.0.0: proarrow.cabal
cabal-version: 3.0
name: proarrow
version: 0.1.0.0
synopsis: Category theory with a central role for profunctors
description:
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.
homepage: https://github.com/sjoerdvisscher/proarrow
bug-reports: https://github.com/sjoerdvisscher/proarrow/issues
license: BSD-3-Clause
license-file: LICENSE
author: Sjoerd Visscher
maintainer: sjoerd@w3future.com
category: Math, Categories
tested-with: GHC ==9.10.3 || ==9.12.2
extra-doc-files:
CHANGELOG.md
lattice.svg
README.md
extra-source-files:
fix-github-links.py
lattice.dot
mkdocs.sh
common extensions
default-language: GHC2024
ghc-options: -Wall
default-extensions:
BlockArguments
DefaultSignatures
DeriveAnyClass
DerivingVia
FunctionalDependencies
OverloadedLists
NoImplicitPrelude
NoStarIsType
PatternSynonyms
RecordWildCards
QuantifiedConstraints
StrictData
TypeAbstractions
TypeData
TypeFamilies
UndecidableInstances
UndecidableSuperClasses
ViewPatterns
library
import: extensions
exposed-modules:
Proarrow
Proarrow.Adjunction
Proarrow.Category.Enriched
Proarrow.Category.Enriched.Dagger
Proarrow.Category.Enriched.Finitary
Proarrow.Category.Enriched.Finitary.Sheaf
Proarrow.Category.Enriched.Finitary.Topos
Proarrow.Category.Enriched.Quantale
Proarrow.Category.Enriched.Thin
Proarrow.Category.Enriched.Thin.Composition
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.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.Zero
Proarrow.Category.Instance.ZX
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.Instance.Paths
Proarrow.Category.Instance.Opposite
Proarrow.Category.Instance.Ordinal
Proarrow.Category.Promonoidal
Proarrow.Category.Sheaf
Proarrow.Category.Topos
Proarrow.Colimit
Proarrow.Colimit.BinaryCoproduct
Proarrow.Colimit.Coequalizer
Proarrow.Colimit.Copower
Proarrow.Colimit.Initial
Proarrow.Colimit.NaturalNumbers
Proarrow.Colimit.Pushout
Proarrow.Core
Proarrow.Functor
Proarrow.Limit
Proarrow.Limit.BinaryProduct
Proarrow.Limit.Equalizer
Proarrow.Limit.Power
Proarrow.Limit.Pullback
Proarrow.Limit.Terminal
Proarrow.Monoid
Proarrow.Object
Proarrow.Optic
Proarrow.Optics
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.PowerGrate
Proarrow.Optic.Lens
Proarrow.Optic.Prism
Proarrow.Optic.Prod
Proarrow.Optic.Setter
Proarrow.Optic.Sum
Proarrow.Optic.Tracer
Proarrow.Optic.MonoidalLens
Proarrow.Optic.MonoidalTraversal
Proarrow.Optic.Traversal
Proarrow.Path
Proarrow.Profunctor.Cofree
Proarrow.Profunctor.Corepresentable
Proarrow.Profunctor.Free
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.Promonad.Cont
Proarrow.Promonad.Reader
Proarrow.Promonad.State
Proarrow.Promonad.Writer
Proarrow.Squares
Proarrow.Tools.CCC
Proarrow.Tools.DPO
Proarrow.Tools.Laws
Proarrow.Tools.Diagrams.Dot
Proarrow.Tools.Diagrams.Svg
Proarrow.Universal
build-depends:
, base >=4.20 && <5
, containers >=0.6 && <0.9
, fin >= 0.3.2 && <1
, vec >= 0.5.1 && <1
, universe-base >= 1.1.4 && <1.2
hs-source-dirs: src
library testing
import: extensions
visibility: public
hs-source-dirs: testing
exposed-modules:
Proarrow.Testing
Proarrow.Testing.Laws
Proarrow.Testing.Laws.Run
build-depends: proarrow
build-depends:
, base >=4.20 && <5
, data-default >=0.7 && <0.9
, falsify >=0.4 && <0.5
, tasty >=1.4 && <1.6
, tasty-falsify >=0.1 && <0.2
test-suite test
import: extensions
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: Main.hs
other-modules:
Examples.Cofree
Examples.CustomLaws
Examples.Database
Examples.Free
Examples.FrontDoor
Examples.Readme
Examples.Graph
Examples.UntypedLambdaCalculus
Examples.SimplyTypedLambdaCalculus
Examples.Vitrea
Props.Bool
Props.DPO
Props.Discrete
Props.Cospan
Props.Cost
Props.Dot
Props.Svg
Props.FinHask
Props.FinRel
Props.FinSet
Props.Finitary
Props.Finitary.Graph
Props.Free
Props.Hask
Props.Kleisli
Props.PointedHask
Props.Mat
Props.Optic.Hask
Props.Optic.Linear
Props.Ordinal
Props.Paths
Props.Sheaf
Props.Sheaf.Chain
Props.Sheaf.Collage
Props.Optic.FinRel
Props.Simplex
Props.Span
Props.ZX
build-depends: proarrow, proarrow:testing
build-depends:
, base >=4.20 && <5
, containers >=0.6 && <0.9
, falsify >=0.4 && <0.5
, fin >= 0.3.2 && <1
, vec >= 0.5.1 && <1
, universe-base >= 1.1.4 && <1.2
, tasty >=1.4 && <1.6
, tasty-falsify >=0.1 && <0.2