cabal-version: >= 1.10 name: profunctor-optics version: 0.0.0.2 synopsis: An optics library compatible with the typeclasses in 'profunctors'. description: This package provides utilities for creating and manipulating profunctor-based optics. Some highlights: . Full complement of isos, prisms, lenses, grates, traversals (affine, regular, and non-empty), folds (affine, regular, and non-empty), views, and setters. Many of these have categorical duals. . Composable indexed and co-indexed variants of all of the above. . Compact & straight-forward implementation. No inscrutable internal modules, lawless or otherwise ancillary typeclasses, or heavy type-level machinery. . Fully interoperable. All that is required to create optics (standard, idexable, or co-indexable) is the `profunctors` package, which is heavily used and likely to end up in `base` at some point. Optics compose with `(.)` from `Prelude` as is typical. If you want to provide profunctor optics for your own types in your own libraries, you can do so without incurring a dependency on this package. Conversions to & from the Van Laarhoven representations are provided for each optic type. . Well-documented properties and exportable predicates for testing your own optics. . See the file for more information. category: Data, Lenses, Profunctors stability: Experimental homepage: https://github.com/cmk/profunctor-extras bug-reports: https://github.com/cmk/profunctor-extras/issues author: Chris McKinlay maintainer: Chris McKinlay copyright: 2019 Chris McKinlay license: BSD3 license-file: LICENSE build-type: Simple tested-with: GHC == 8.6.3 extra-source-files: ChangeLog.md source-repository head type: git location: https://github.com/cmk/profunctor-extras library exposed-modules: Control.Exception.Optic Data.Tuple.Optic Data.Connection.Optic Data.Connection.Optic.Int Data.Connection.Optic.Word Data.Connection.Optic.Float Data.Profunctor.Optic Data.Profunctor.Optic.Type Data.Profunctor.Optic.Iso Data.Profunctor.Optic.View Data.Profunctor.Optic.Setter Data.Profunctor.Optic.Lens Data.Profunctor.Optic.Prism Data.Profunctor.Optic.Grate Data.Profunctor.Optic.Fold Data.Profunctor.Optic.Fold0 Data.Profunctor.Optic.Fold1 Data.Profunctor.Optic.Traversal Data.Profunctor.Optic.Traversal0 Data.Profunctor.Optic.Traversal1 Data.Profunctor.Optic.Operator Data.Profunctor.Optic.Property Data.Profunctor.Optic.Index other-modules: Data.Profunctor.Optic.Import default-language: Haskell2010 hs-source-dirs: src default-extensions: ConstraintKinds RankNTypes MultiParamTypeClasses OverloadedStrings FlexibleContexts FlexibleInstances ExistentialQuantification NoImplicitPrelude QuantifiedConstraints ScopedTypeVariables TupleSections TypeOperators TypeApplications TypeFamilies ghc-options: -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates build-depends: base >= 4.9 && < 5.0 , comonad >= 4 && < 6 , connections >= 0.0.2 && < 0.1 , containers >= 0.4.0 && < 0.7 , distributive >= 0.3 && < 1 , ilist >= 0.3.1.0 && < 0.4 , mtl >= 2.0.1 && < 2.3 , newtype-generics >= 0.5.3 && < 0.6 , profunctor-arrows >= 0.0.0.2 && < 0.0.1 , profunctors >= 5.2.1 && < 6 , rings >= 0.0.2 && < 0.1 , semigroupoids >= 5 && < 6 , tagged >= 0.4.4 && < 1 , transformers >= 0.2 && < 0.6 , unliftio-core >= 0.1.2 && < 0.2 test-suite doctests type: exitcode-stdio-1.0 main-is: doctests.hs ghc-options: -Wall -threaded hs-source-dirs: test default-language: Haskell2010 x-doctest-options: --fast build-depends: base , containers , doctest >= 0.8 , mtl , profunctor-optics default-extensions: ConstraintKinds RankNTypes MultiParamTypeClasses OverloadedStrings FlexibleContexts FlexibleInstances ExistentialQuantification QuantifiedConstraints ScopedTypeVariables TupleSections TypeOperators TypeApplications TypeFamilies