cabal-version: 3.0
name: polytropos-microlens
version: 0.1.0.2
synopsis: Lightweight microlens optics integration for polytropos open records
description:
Lightweight optics integration between <https://hackage.haskell.org/package/polytropos polytropos> open records
and <https://hackage.haskell.org/package/microlens microlens>.
Designed specifically for codebases prioritizing fast compilation times and zero
transitive dependency bloat: depends strictly on @base@, <https://hackage.haskell.org/package/microlens microlens>,
<https://hackage.haskell.org/package/polytropos-core polytropos-core>, and <https://hackage.haskell.org/package/polytropos-plugin polytropos-plugin>.
Provides O(1) field lenses via 'Polytropos.Microlens.fieldLens' (with slot indices emitted as literals
by the TcPlugin) and homogeneous single-pass traversals over flat contiguous
payload arrays via 'Lens.Micro.each'.
Start at the front door module "Polytropos.Microlens" 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
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-microlens
library
default-language: GHC2021
hs-source-dirs: src
exposed-modules: Polytropos.Microlens
ghc-options: -Wall
build-depends:
base >= 4.14 && < 5,
microlens >= 0.4 && < 0.5,
polytropos-core >= 0.1 && < 0.2,
polytropos-plugin >= 0.1 && < 0.2
test-suite polytropos-microlens-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,
microlens,
polytropos-core,
polytropos-microlens,
polytropos-plugin,
tasty,
tasty-hunit