packages feed

data-diverse-lens-4.2.0.0: README.md

[![Hackage](https://img.shields.io/hackage/v/data-diverse-lens.svg)](https://hackage.haskell.org/package/data-diverse-lens)
[![Build Status](https://secure.travis-ci.org/louispan/data-diverse-lens.png?branch=master)](http://travis-ci.org/louispan/data-diverse-lens)

Provides "Iso"s & 'Len's for "Data.Diverse.Many" and 'Prism's for "Data.Diverse.Which".

Refer to [ManySpec.hs](https://github.com/louispan/data-diverse-lens/blob/master/test/Data/Diverse/Lens/ManySpec.hs) and [WhichSpec.hs](https://github.com/louispan/data-diverse/blob/master/test/Data/Diverse/Lens/WhichSpec.hs) for example usages.

# Changelog

* 4.2.0.0
  - Replaced `also` and `alternatively` with `chooseWith`

* 4.1.0.0
  - Removed generic-lens dependency - didn't really use it.

* 4.0.0.0
  - Renamed `itemXXX` to `pieceXXX`, `Itemized` to `Pieced`, `itemizedXXX` to `piecedXXX`.

* 3.1.1.0
  - `itemTag` only requires `Has` and likewise `facetTag` only requires `AsFacet`.

* 3.1.0.0
  - Replaced `HasItem` with `Data.Has`.

* 3.0.0.2
  - Fixed haddock.

* 3.0.0.1
  - Fixed GHC 8.2.2 "Type indexes must match class instance head" compile error.

* 3.0.0.0
  - Renamed `SelectWith` to `MakeFrom`, split `ChooseBtween` to `ChooseBoth` and `ChooseFrom`.
  - Removed hard to remember operators ``>&&>` `*&&*` `+||+` `>||>`
  - Removed `faceted'`
  - Added `instance AsFacet Void (Which '[])` and `instance AsFacet (Which '[]) Void`
  - Polymorphic `HasItemX` now only requires two to three type args.

* 2.1.0.0
  - Removed profunctor variable `w` from the constraint synonyms for `Projected`/`Injected`.

* 2.0.0.1
  - Forgot to expose constraint synonyms for `Projected`/`Injected`.

* 2.0.0.0
  - Breaking change: Removed `HasProject` and `AsInject` typeclasses and changed them back to functions.
  - Added `MatchingFacet` typeclasses for polymorphic `matching` of prisms.
  - Added constraint synonyms for `Project`/`Inject`/`Projected`/`Injected`.

* 1.0.0.1
  - Fixed missing exports of the new lens classes.

* 1.0.0.0
  - Removed overlapping instances of `Data.Generics` lens
  - Using typeclass instead of plain functions so that lens can be used for other data types
    - Added default implementations for some of these typeclasses using Data.Generic typeclasses.
  - Breaking change: the xxx' version of functions are now consistently the simpler or non-polymorphic version    - This is more consistent with 'Control.Lens' as well.
    - This means the following are swapped:
      - `item`, `item'`
      - `itemL`, `itemL'`
      - `itemTag`, `itemTag'`
      - `itemN`, `itemN'`
      - `project`, `project'`
      - `projectL`, `projectL'`
      - `projectN`, `projectN'`

* 0.5.2.0
  - Added `itemTag` and `facetTag` that also tag/untags the field.
  - Added overlapping instances of `Data.Generics` lens

* 0.5.1.0
  - Added `faceted`, `injected`, `itemized`, `projected`, which is analogous to `Profunctor` `Choice` and `Strong` but using `Which` and `Many`
  - Added `+||+` (analogous to `+++` and `|||`), `>||>`; and `*&&*` (analogous to `***` and `&&&`), and `>&&>`.

* 0.5.0.0
  - min bounds: data-diverse >=1.2.1
  - Rerranged type variable for xxxL and xxxN functions so that the
    @x@ inferrred from label @l@ or index @n@ is after @proxy@.
    - This affects `item[L|N]`, `item[L|N]'`, `replace[L|N]'`, `facet[L|N]`
    - Same change was made in data-diverse-1.2.0.0

* 0.4.0.1
  - included data-diverse 1.0 in the upper bounds

* 0.4.0.0
  - Changed type variable ordering of `itemL` and `itemL`, so it's consistently `x`, `y`, then `xs`

* 0.3.0.0
  - Changed type variable ordering of `facetL` and `facetN`, so it's consistently `x` then `xs`

* pre 0.3.0.0
  - Initial version.