<commit_before>4.9
-------
* `filepath` 1.4 support
* `primitive` 0.6 support. Adds new `PrimBase` constraint to
  `Control.Monad.Primitive.Lens.prim`
* Add missing `_WithIndex` instances from `keys` package

4.8
---
* When built with `profunctors` 4.4 on GHC 7.8+ we no longer need to use `unsafeCoerce` at all!
  This drastically reduces the level of trust involved in the way we have optimized `lens`.
* Added `fusing`. This optimizes long `Lens` chains, by enfocing a form of `fmap` fusion based on the Yoneda lemma. This is particularly effective at making faster lenses the definition is recursive or complex enough that it cannot be inlined.
* Added `confusing`. This optimizes long `Traversal` chains. As with `fusing` it is best used when the definition for the `Traversal` chain in question is recursive or complex enough that it cannot be inlined, but the implementation is much more confusing.
* Remove deprecated stuff: `Control.Lens.Loupe`, `headOf`, `makeFieldsWith`,
  `strippingPrefix`, `strippingSuffix`
* Added `Cons` and `Snoc` instances for `NonEmpty`
* Removed `Data.List.Split.Lens` module
* Reimplemented `bytestring` traversals to avoid internal modules
* Added `gplate`, an implementation of `plate` for any type implementing `Generic`
* Strictness revisited
  * Add `generateLazyPatterns` configuration flag to `makeLenses` rules.
  * Make the default `makeLenses` behavior to generate STRICT optics
  * Add strict variants of `_1` .. `_9` named `_1'` .. `_9'`
* Generalized some combinators in `Data.Vector.Generic.Lens` and added `converted`

4.7
---
* Migrated `Control.Lens.Action` to `lens-action`.
* Added `Data.Vector.Generic.Lens.vectorIx` function for indexing vectors with only `Vector` constraint.
* Added `Field1` and `Field2` instances for `Data.Functor.Product.Product`.
* Removed the "typeclass synonym" `Gettable`.
* Added new flag to `makeLenses`, `generateUpdateableOptics`, which allows<commit_msg>finish up 4.9 changelog entries<commit_after>4.9
-------
* `filepath` 1.4 support
* `primitive` 0.6 support. Adds new `PrimBase` constraint to `Control.Monad.Primitive.Lens.prim`
* Add missing `_WithIndex` instances from `keys` package
* Much more code is inferred `Safe` rather than `Trustworthy`.
* Documented the difference between `unsafeSingular` and `singular`.
* `folding` now produces an actual `Fold`.
* Cleaned up builds for GHC 7.10 to get rid of redundant import warnings.

4.8
---
* When built with `profunctors` 4.4 on GHC 7.8+ we no longer need to use `unsafeCoerce` at all!
  This drastically reduces the level of trust involved in the way we have optimized `lens`.
* Added `fusing`. This optimizes long `Lens` chains, by enfocing a form of `fmap` fusion based on the Yoneda lemma. This is particularly effective at making faster lenses the definition is recursive or complex enough that it cannot be inlined.
* Added `confusing`. This optimizes long `Traversal` chains. As with `fusing` it is best used when the definition for the `Traversal` chain in question is recursive or complex enough that it cannot be inlined, but the implementation is much more confusing.
* Remove deprecated stuff: `Control.Lens.Loupe`, `headOf`, `makeFieldsWith`,
  `strippingPrefix`, `strippingSuffix`
* Added `Cons` and `Snoc` instances for `NonEmpty`
* Removed `Data.List.Split.Lens` module
* Reimplemented `bytestring` traversals to avoid internal modules
* Added `gplate`, an implementation of `plate` for any type implementing `Generic`
* Strictness revisited
  * Add `generateLazyPatterns` configuration flag to `makeLenses` rules.
  * Make the default `makeLenses` behavior to generate STRICT optics
  * Add strict variants of `_1` .. `_9` named `_1'` .. `_9'`
* Generalized some combinators in `Data.Vector.Generic.Lens` and added `converted`

4.7
---
* Migrated `Control.Lens.Action` to `lens-action`.
* Added `Data.Vector.Generic.Lens.vectorIx` function for indexing vectors with only `Vector` constraint.
* Added `Field1` and `Field2` instances for `Data.Functor.Product.Product`.
* Removed the "typeclass synonym" `Gettable`.
* Added new flag to `makeLenses`, `generateUpdateableOptics`, which allows
{'fraction_non_alphanumeric': 0.09920539369130749, 'fraction_numerical': 0.010835540573079701, 'mean_word_length': 4.769444444444445, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7175511', 'n_tokens_mistral': 1276, 'n_tokens_neox': 1204, 'n_words': 518}