optics-0.4.1: optics.cabal
cabal-version: 2.2
name: optics
version: 0.4.1
license: BSD-3-Clause
license-file: LICENSE
build-type: Simple
maintainer: optics@well-typed.com
author: Adam Gundry, Andres Löh, Andrzej Rybczak, Oleg Grenrus
tested-with: GHC ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.7
|| ==9.0.2 || ==9.2.2, GHCJS ==8.4
synopsis: Optics as an abstract interface
category: Data, Optics, Lenses
description:
This package makes it possible to define and use Lenses, Traversals, Prisms
and other optics, using an abstract interface. See the main module "Optics"
for the documentation.
.
This is the "batteries-included" variant with many dependencies; see the
@<https://hackage.haskell.org/package/optics-core optics-core>@ package and
other @optics-*@ dependencies if you need a more limited dependency footprint.
.
Note: Hackage does not yet display documentation for reexported-modules,
but you can start from the "Optics" module documentation or see the module
list in @<https://hackage.haskell.org/package/optics-core optics-core>@.
extra-doc-files:
diagrams/*.png
CHANGELOG.md
bug-reports: https://github.com/well-typed/optics/issues
source-repository head
type: git
location: https://github.com/well-typed/optics.git
subdir: optics
common language
ghc-options: -Wall -Wcompat
default-language: Haskell2010
default-extensions: BangPatterns
ConstraintKinds
DefaultSignatures
DeriveFoldable
DeriveFunctor
DeriveGeneric
DeriveTraversable
EmptyCase
FlexibleContexts
FlexibleInstances
FunctionalDependencies
GADTs
GeneralizedNewtypeDeriving
InstanceSigs
KindSignatures
LambdaCase
OverloadedLabels
PatternSynonyms
RankNTypes
ScopedTypeVariables
TupleSections
TypeApplications
TypeFamilies
TypeOperators
ViewPatterns
library
import: language
hs-source-dirs: src
build-depends: base >= 4.10 && <5
, array >= 0.5.2.0 && <0.6
, containers >= 0.5.10.2 && <0.7
, mtl >= 2.2.2 && <2.3
, optics-core >= 0.4.1 && <0.4.2
, optics-extra >= 0.4.1 && <0.4.2
, optics-th >= 0.4.1 && <0.4.2
, transformers >= 0.5 && <0.6
-- main module to land with repl
exposed-modules: Optics
-- main optic type
reexported-modules: Optics.Optic
-- optic flavours
reexported-modules: Optics.AffineFold
, Optics.AffineTraversal
, Optics.Fold
, Optics.Getter
, Optics.Iso
, Optics.IxAffineFold
, Optics.IxAffineTraversal
, Optics.IxFold
, Optics.IxGetter
, Optics.IxLens
, Optics.IxSetter
, Optics.IxTraversal
, Optics.Lens
, Optics.Prism
, Optics.ReversedLens
, Optics.ReversedPrism
, Optics.Review
, Optics.Setter
, Optics.Traversal
-- optics utilities
reexported-modules: Optics.Arrow
, Optics.At
, Optics.Coerce
, Optics.Cons
, Optics.Each
, Optics.Empty
, Optics.Generic
, Optics.Indexed
, Optics.Label
, Optics.Mapping
, Optics.Operators
, Optics.Operators.Unsafe
, Optics.Passthrough
, Optics.Re
, Optics.ReadOnly
, Optics.State
, Optics.State.Operators
, Optics.View
, Optics.Zoom
-- template haskell support
reexported-modules: Optics.TH
-- data specific optics
reexported-modules: Data.ByteString.Lazy.Optics
, Data.ByteString.Optics
, Data.ByteString.Strict.Optics
, Data.Either.Optics
, Data.HashMap.Optics
, Data.HashSet.Optics
, Data.IntMap.Optics
, Data.IntSet.Optics
, Data.List.Optics
, Data.Map.Optics
, Data.Maybe.Optics
, Data.Sequence.Optics
, Data.Set.Optics
, Data.Text.Lazy.Optics
, Data.Text.Optics
, Data.Text.Strict.Optics
, Data.Tree.Optics
, Data.Tuple.Optics
, Data.Typeable.Optics
, Data.Vector.Generic.Optics
, Data.Vector.Optics
, GHC.Generics.Optics
, Numeric.Optics
test-suite optics-tests
import: language
hs-source-dirs: tests
-- inspection-testing doesn't compile with GHCJS
if impl(ghcjs)
buildable: False
build-depends: base
, containers
, indexed-profunctors >= 0.1 && <0.2
, inspection-testing >= 0.4.1.1 && <0.5
, mtl
, optics
, optics-core
, QuickCheck
, random
, tasty
, tasty-hunit
, tasty-quickcheck
, template-haskell
type: exitcode-stdio-1.0
main-is: Optics/Tests.hs
other-modules: Optics.Tests.Computation
Optics.Tests.Core
Optics.Tests.Eta
Optics.Tests.Labels.Generic
Optics.Tests.Labels.TH
Optics.Tests.Misc
Optics.Tests.Properties
Optics.Tests.Utils
-- Benchmarking folds
benchmark folds
import: language
hs-source-dirs: benchmarks
-- GHCJS takes forever to compile dependencies
if impl(ghcjs)
buildable: False
build-depends: base
, bytestring
, containers
, lens
, optics
, tasty-bench
, unordered-containers
, vector
type: exitcode-stdio-1.0
main-is: folds.hs
-- Benchmarking traversals
benchmark traversals
import: language
hs-source-dirs: benchmarks
-- GHCJS takes forever to compile dependencies
if impl(ghcjs)
buildable: False
build-depends: base
, bytestring
, containers
, lens
, optics
, tasty-bench
, transformers
, unordered-containers
, vector
type: exitcode-stdio-1.0
main-is: traversals.hs