packages feed

polytropos-profunctors-0.1.0.2: polytropos-profunctors.cabal

cabal-version: 3.0
name: polytropos-profunctors
version: 0.1.0.2
synopsis: Pure profunctor optics for polytropos open records and variants
description:
  Integration between <https://hackage.haskell.org/package/polytropos polytropos> and the
  <https://hackage.haskell.org/package/profunctors profunctors> ecosystem.

  Provides pure profunctor lenses and prisms ('Polytropos.Profunctors.Lens', 'Polytropos.Profunctors.Prism')
  operating directly over Polytropos's unboxed 'Data.Primitive.SmallArray.SmallArray' memory layout:
  * 'Polytropos.Profunctors.fieldLens' for record fields via compile-time 'Polytropos.Core.FieldIndex'.
  * 'Polytropos.Profunctors.ctorPrism' for variant constructors via 'Polytropos.Core.ConstructorIndex'.
  * Zero-overhead 'Polytropos.Profunctors.slotLens' and 'Polytropos.Profunctors.variantPrism' indexed by array slots and constructor tags.

  Start at the front door module "Polytropos.Profunctors" for complete documentation,
  usage guidelines, and worked examples.
license: EUPL-1.2 OR Apache-2.0
license-file: LICENSE
author: Nadia Yvette Chambers
maintainer: nadia.yvette.chambers@ik.me
category: Optics, Data, Control
homepage: https://github.com/NadiaYvette/polytropos
bug-reports: https://github.com/NadiaYvette/polytropos/issues
extra-doc-files:
    README.md
  , CHANGELOG.md
build-type: Simple

source-repository head
  type:     git
  location: https://github.com/NadiaYvette/polytropos
  subdir:   packages/polytropos-profunctors

library
  default-language: GHC2021
  hs-source-dirs: src
  exposed-modules: Polytropos.Profunctors
  ghc-options: -Wall
  build-depends:
    base >= 4.14 && < 5,
    primitive >= 0.7 && < 1,
    profunctors >= 5.6 && < 6,
    tagged >= 0.8 && < 1,
    polytropos-core >= 0.1 && < 0.2

test-suite polytropos-profunctors-test
  type: exitcode-stdio-1.0
  default-language: GHC2021
  hs-source-dirs: test
  main-is: Main.hs
  ghc-options: -Wall -fplugin=Polytropos.Plugin
  build-depends:
    base,
    primitive,
    profunctors,
    tagged,
    polytropos-core,
    polytropos-profunctors,
    polytropos-plugin,
    tasty,
    tasty-hunit