Changelog for optics-core-0.4
optics-core-0.4 (2021-02-22)
- See migration-guide-0.4.md for more details
- Add support for GHC-9.0
- Drop support for GHC-8.0
- The
FunctorWithIndex, FoldableWithIndex and TraversableWithIndex type
classes have been migrated to a new package,
indexed-traversable
(#370)
- Add
adjoin, iadjoin and both to Optics.[Ix]Traversal
(#332,
#372)
- Add
ifst and isnd to Optics.IxLens
(#389)
- Generalize types of
generic
(#376)
- Make
chosen an indexed lens to see which value is traversed
(#335)
- Remove
GeneralLabelOptic extensibility mechanism
(#361)
- Add
gfield, gafield, gconstructor, gposition and gplate for
generics-based data access
(#358,
#361)
- Add support for generics-based field lenses and constructor prisms (
gfield
and gconstructor) to LabelOptic so they can be used via OverloadedLabels
(#361)
- Remove unnecessary INLINE pragmas to reduce compile times
(#394)
- Simplify the type of
(%) using new JoinKinds and AppendIndices classes
in place of the Join and Append type families
(#397,
#399)
optics-core-0.3.0.1 (2020-08-05)
- Add INLINE pragmas to
atraverseOf_, iaTraverseOf_ and ignored
- Improve error message in catch-all
GeneralLabelOptic instance
- Make GHC optimize away profunctor type classes when profiling is enabled
- Improve documentation of
Optics.Label:
- Add guide on how to effectively use labels as optics
- Restructure existing sections
optics-core-0.3 (2020-04-15)
- GHC-8.10 support
- Add
filteredBy and unsafeFilteredBy
- Add
FunctorWithIndex, FoldableWithIndex and TraversableWithIndex
instances for Const and Constant
- Add
afoldVL and iafoldVL constructors
- Rename
toAtraversalVL to atraverseOf, and toIxAtraversalVL to iatraverseOf
- Generalise
element and elementOf to construct IxAffineTraversals
instead of IxTraversals
- Change
mapping to work on optic kinds other than Iso: it now supports
Lens and Prism degenerating to Getter and Review respectively
- Generalise
ignored to be an IxAffineTraversal instead of an IxTraversal
- Add
singular and isingular
- Add
(^?!) operator
- Expose
Curry and CurryCompose
- Show expected elimination forms on optic kind mismatch
- Use stricter
uncurry' for better performance
- Add hidden
LabelOptic instance to postpone instance resolution
- Add
GeneralLabelOptic for pluggable generic optics as labels
- Document monoidal structures of
Folds
- Remove proxy argument from
implies
- Add
itoList
optics-core-0.2 (2019-10-18)
- Add
non, non' and anon to Optics.Iso
ix can produce optic kinds other than AffineTraversal
- Generalise type of
generic1
- Move some internal definitions out to new
indexed-profunctors package
- Introduce
OpticKind and IxList type synonyms for better type inference
- Make
itraverse for Seq faster for containers >= 0.6.0
- Assorted documentation improvements
optics-core-0.1 (2019-09-02)