cabal-version: 3.0 name: proarrow version: 0.1 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. Rendered documentation is available at . 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: 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