./devel/hs-lens, Lenses, Folds and Traversals

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 5.3.3, Package name: hs-lens-5.3.3, Maintainer: pkgsrc-users

This package comes "Batteries Included" with many useful lenses for the types
commonly used from the Haskell Platform, and with tools for automatically
generating lenses and isomorphisms for user-supplied data types.

The combinators in Control.Lens provide a highly generic toolbox for composing
families of getters, folds, isomorphisms, traversals, setters and lenses and
their indexed variants.

An overview, with a large number of examples can be found in the README
(https://github.com/ekmett/lens#lens-lenses-folds-and-traversals).


Master sites:


Version history: (Expand)


CVS history: (Expand)


   2025-01-30 08:59:00 by Masatake Daimon | Files touched by this commit (3) | Package updated
Log message:
devel/hs-lens: update to lens-5.3.3

5.3.3 [2024.12.28]
------------------
* Add `makeFieldsId`, which generates overloaded field accessors using the
  same names as the underlying fields. This is intended for use with the
  `NoFieldSelectors` and `DuplicateRecordFields` language extensions.

  Also add `classIdFields :: LensRules` and `classIdNamer :: FieldNamer`, both
  of which use the same naming rules as `makeFieldsId`.
* Update the `Prism`s in `Language.Haskell.TH.Lens` to reflect additions to
  `template-haskell-2.23.0.0`:
  * Add an `_OrP` `Prism` for the `Pat` data type.
  * Add `_ForallE`, `_ForallVisE`, and `_ConstrainedE` `Prism`s for the `Exp`
    data type.

5.3.2 [2024.05.12]
------------------
* Define the following lenses that perform an operation and result the old
  result:
  * `(<<<>:~)` (prepend to the front via `(<>)` and return the \ 
old result)
  * `(<<<|~)` (prepend to the front via `(<|)` and return the old result)
  * `(<<|>~)` (append to the back via `(|>)` and return the old result)

  Each of these also has a variant that end with `=` instead of `~` (e.g.,
  `(<<<>:=)`) for working in a `MonadState` setting.
* Re-export `(<>:~)`, `(<<>:~)`, `(<|~)`, `(<<|~)`, \ 
`(|>~)`, and `(<|>~)` (as
  well as their variants which end with `=` instead of `~`, and their variants
  which return the old result) from `Control.Lens.Operators`.

5.3.1 [2024.05.05]
------------------
* Add a `Magnify` instance for the CPS variant of `RWST` when building with
  `mtl-2.3` or later.

5.3 [2024.05.04]
----------------
* Allow building with GHC 9.10.
* Update the `Prism`s in `Language.Haskell.TH.Lens` to reflect additions to
  `template-haskell-2.22.0.0`:
  * The `_InfixD` `Prism` now focuses on `(Fixity, NamespaceSpecifier, Name)`
    when building with `template-haskell-2.22.0.0` or later.
  * Add `Prism`s for the newly introduced `NamespaceSpecifier` data type.
  * Add `_TypeP` and `_InvisP` `Prism`s for the `Pat` data type.
  * Add a `_TypeE` `Prism` for the `Exp` data type.
  * Add a `_SCCP` `Prism` for the `Pragma` data type.
* Add the following `Setter`s for prepending and appending elements:
  * `(<>:~)`: prepend an element to the front via `(<>)`.
  * `(<<>:~)`: prepend an element to the front via `(<>)` and \ 
return the result.
  * `(<|~)`: cons an element to the front via `(<|)`.
  * `(<<|~)`: cons an element to the front via `(<|)` and return the result.
  * `(|>~)`: snoc an element to the back via `(|>)`.
  * `(<|>~)`: snoc an element to the back via `(|>)` and return the result.

  Each of these also has a variant that end with `=` instead of `~` (e.g.,
  `(<>:=)`) for working in a `MonadState` setting.
   2024-05-09 03:32:57 by Masatake Daimon | Files touched by this commit (1137)
Log message:
Recursive revbump after changing the default Haskell compiler
   2024-05-03 12:43:32 by Masatake Daimon | Files touched by this commit (2)
Log message:
devel/hs-lens: Fix build with GHC 9.8

This breaks build with the currently default GHC 9.6. Please bear with me
until I switch the default compiler.
   2023-11-02 07:37:49 by Masatake Daimon | Files touched by this commit (1141)
Log message:
Revbump all Haskell after updating lang/ghc96
   2023-10-30 19:52:38 by Masatake Daimon | Files touched by this commit (4) | Package updated
Log message:
devel/hs-lens: Update to 5.2.3

5.2.3 [2023.08.24]
* Allow building with GHC 9.8.
* Add new Prisms to Language.Haskell.TH.Lens to reflect recent additions to
  template-haskell:
  - _GetFieldE and _ProjectionE Prisms for the Exp data type, whose
    corresponding data constructors were introduced in
    template-haskell-2.18.*.
  - _TypedBracketE and _TypedSpliceE Prisms for the Exp data type, whose
    corresponding data constructors were introduced in
    template-haskell-2.21.*.
  - _BndrReq and _BndrInvis Prisms for the BndrVis data type, which was
    added in template-haskell-2.21.*.
* Add a generateRecordSyntax option to Control.Lens.TH, which controls
  whether to generate lenses using record update syntax or not. By default,
  this option is disabled.
* Fix a bug in which the declare* Template Haskell functions would fail if
  a data type's field has a type that is defined in the same Template
  Haskell quotation.
* Add altOf, which collects targets into any Alternative.

5.2.2 [2023.03.18]
* Fix a bug in which calling ix i (where i is a negative number) on Text or
  ByteString would return the Just the first character instead of returning
  Nothing.

5.2.1 [2023.02.27]
* Allow building with GHC 9.6.
* Allow building with GHC backends where HTYPE_SIG_ATOMIC_T is not defined,
  such as the WASM backend.
* Support building with th-abstraction-0.5.*.
* Define _TypeDataD in Language.Haskell.TH.Lens when building with
  template-haskell-2.20.0.0 (GHC 9.6) or later.
   2023-10-09 06:55:01 by Masatake Daimon | Files touched by this commit (988)
Log message:
Bump Haskell packages after updating lang/ghc94
   2022-08-23 14:16:25 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
hs-lens: update to 5.2.

5.2 [2022.08.11]
----------------
* Allow building with GHC 9.4.
* The type of `universeOf` has changed:

  ```diff
  -universeOf :: Getting       [a]  a a -> a -> [a]
  +universeOf :: Getting (Endo [a]) a a -> a -> [a]
  ```

  In many cases, using `Endo [a]` over `[a]` improves performance. Most call
  sites to `universeOf` will not be affected by this change, although you may
  need to update your code if you define your own combinators in terms of
  `universeOf`.
* Allow `makeWrapped` to accept the names of data constructors. This way,
  `makeWrapped` can be used with data family instances, much like other
  functions in `Control.Lens.TH`.
* Define `_OpaqueP`, `_DefaultD`, `_LamCasesE`, `_PromotedInfixT`, and
  `_PromotedUInfixT` in `Language.Haskell.TH.Lens` when building with
  `template-haskell-2.19.0.0` (GHC 9.4) or later.

5.1.1 [2022.05.17]
------------------
* Add `Data.HashSet.Lens.hashMap`, an `Iso` between a `HashSet a` and a
  `HashMap a ()`.
* Allow building with `transformers-0.6.*` and `mtl-2.3.*`.

  Note that `lens` no longer defines `Zoom` instances for `ErrorT` or `ListT`
  when building with `mtl-2.3` or later. This is because `MonadState` is a
  superclass of `Zoom`, and the `MonadState` instances for `ErrorT` and `ListT`
  were removed in `mtl-2.3`. Be watchful of this if you build `lens` with
  `mtl-2.3` (or later) combined with an older version of `transformers`
  (pre-`0.6`) that defines `ErrorT` or `ListT`.
   2022-08-20 10:08:24 by Thomas Klausner | Files touched by this commit (211)
Log message:
hs*: recursive bump for new dependencies needed

for hs-aeson, hs-vector