profunctor-optics: An optics library compatible with the typeclasses in 'profunctors'.
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 seems 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 Readme file for more information.
Modules
[Index] [Quick Jump]
- Control
- Exception
- Data
- Connection
- Profunctor
- Data.Profunctor.Optic
- Data.Profunctor.Optic.Fold
- Data.Profunctor.Optic.Fold0
- Data.Profunctor.Optic.Fold1
- Data.Profunctor.Optic.Grate
- Data.Profunctor.Optic.Index
- Data.Profunctor.Optic.Iso
- Data.Profunctor.Optic.Lens
- Data.Profunctor.Optic.Operator
- Data.Profunctor.Optic.Prism
- Data.Profunctor.Optic.Property
- Data.Profunctor.Optic.Setter
- Data.Profunctor.Optic.Traversal
- Data.Profunctor.Optic.Traversal0
- Data.Profunctor.Optic.Traversal1
- Data.Profunctor.Optic.Type
- Data.Profunctor.Optic.View
- Data.Profunctor.Optic
- Tuple
Downloads
- profunctor-optics-0.0.0.2.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
Versions [RSS] | 0.0.0.1, 0.0.0.2, 0.0.0.3, 0.0.0.4, 0.0.0.5, 0.0.1, 0.0.2 |
---|---|
Change log | ChangeLog.md |
Dependencies | 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) [details] |
Tested with | ghc ==8.6.3 |
License | BSD-3-Clause |
Copyright | 2019 Chris McKinlay |
Author | Chris McKinlay |
Maintainer | Chris McKinlay |
Category | Data, Lenses, Profunctors |
Home page | https://github.com/cmk/profunctor-extras |
Bug tracker | https://github.com/cmk/profunctor-extras/issues |
Source repo | head: git clone https://github.com/cmk/profunctor-extras |
Uploaded | by cmk at 2019-12-02T17:48:08Z |
Distributions | |
Downloads | 2203 total (0 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs uploaded by user Build status unknown [no reports yet] |