# Revision history for contiguous ## 0.6.4.2 -- 2024-02-06 * Restore support for versions of base that do not export `liftA2` from the prelude. ## 0.6.4.1 -- 2024-02-05 * Update package metadata. ## 0.6.4.0 -- 2023-06-28 * Make it work with primitive-unlifted-2.1, which drops support for older primitive-unlifted. * Add `quintupleton` and `sextupleton`. * Add `construct(1|2|3|4|5|6)` aliases for constructing arrays with a small known number of elements. ## 0.6.3.0 -- 2022-12-07 * Add strict `foldrM` ## 0.6.2.0 -- 2022-04-13 * Make benchmarks build * Add strict `ifoldlZipWith` and `foldlZipWith` ## 0.6.1.1 -- 2022-02-16 * Allow building with GHC 9.2.1. * Drop support for GHC 8.8 and earlier. ## 0.6.1.0 -- 2021-09-01 * Add `itraverseP` * Add `deleteAt` and `ifoldr` ## 0.6.0 -- 2021-08-28 * Add `Slice`, `MutableSlice`. * Split `Contiguous` into `ContiguousSlice` and `Contiguous`. * Add `shrink` and `unsafeShrinkAndFreeze` ## 0.5.2 -- 2021-08-11 * Add `ifoldlM'`. * Add `foldrZipWith` and `ifoldrZipWith`. * Add `foldlZipWithM'` and `ifoldlZipWithM'`. * Add `all` and `any`. * Add `run`. Use it internally to accerelate prevent GHC from boxing results in `runST`. * Add `quadrupleton`. ## 0.5.1 -- 2020-06-30 * Add `izipWith`. * Compatibility with `primitive-0.7.1.0`. ## 0.5 -- 2019-07-23 * Add `generateM`, `reverseSlice`, `swap`, `catMaybes`, `zipWith`, `zip`, `lefts`, `rights`, `partitionEithers`, `elem`, `find`, `maximum`/`minimum`, `maximumBy`/`minimumBy`, `asum`, `mapM(_)`, `forM(_)`, `for(_)`, `sequence(_)`, `(<$)`, `ap`, `scanl`, `scanl'`, `iscanl`, `iscanl'`, `prescanl`, `prescanl'`, `iprescanl`, `iprescanl'` * Re-export Array types from the `primitive` package * Expand unit test suite to include all added functions * Expand laws test suite to test Foldable/IsList/Traversable laws in addition to Functor/Applicative * Add benchmark suite that measures allocations * Fix performance issue with fold functions that caused huge increase in allocations when partially-applied. Partially-applied folds now perform as well as fully-applied. * Make sure all functions are marked INLINE. Last function not marked as inline was `imap'`. ## 0.4.0.1 -- 2019-05-17 * Allow building with `primitive-0.7`. This required depending on the `primitive-unlifted` package to provide the removed `UnliftedArray` api. ## 0.4 -- 2019-05-16 * Add `convert`, `filter`, `ifilter`, `itraverse(_)` (#6), `imap'`, `unsafeFromListN`, `unsafeFromListReverseMutableN`, `ifoldr'`, `foldl`, `mapMutable`, `imapMutable`, `reverse`, `reverseMutable`, `replicateMutableM`, `create`, `createT`, `unsafeFromListReverseN`, `generate`, `generateMutable`, `iterate`, `iterateMutableN`, `iterateMutableNM`, `unfoldr`, `unfoldrMutable`, `toList`, `toListMutable`, `fromListMutableN`, `fromListMutable`, `fromListN`, `fromList`, `modify`, `modify'`, `enumFromN`, `enumFromMutableN` * Refactor `replicate` functions to make more sense (#19) * Add `Contiguous` instance for `SmallArray` * Attempt to mark everything as inline (#18) * Achieve 100% doc coverage, organise exports a lot more (mimicking vector). Various haddock fixes * Make `toListMutable` strict in the accumulator * Change all instances of `return` to `pure` * Add initial test suite (some unit tests that check implementations against base/vector versions of the same functions) * Export `unsafeFreeze`, `copy`, `write`, * Rename `sameMutable` to `equalsMutable` ## 0.3.3.0 -- 2019-03-24 * Add `freeze` as a method to `Contiguous` * Add more folds * Mark more functions as INLINEABLE ## 0.3.2.0 -- 2019-01-02 * Add `thaw` as a method to `Contiguous` ## 0.3.1.0 -- 2018-10-19 * Add `singleton`,`doubleton`,`tripleton` as methods to `Contiguous` * Add `map'`, `imap`, `mapMutable'`, `imapMutable'` ## 0.3.0.0 -- 2018-09-06 * Document the need for `Always` * Generalise API: from `ST s` to `PrimMonad m` * Add NFData `rnf` function for deeply evaluating `Contiguous` arrays. * Add function `equals`, for detecting if two arrays in memory are the same. * Add hashing function. * Make `map` able to produce a new array type. * Add `replicate`, `null` as methods to `Contiguous`. * Add `traverse`, `itraverse`, `traverseP`, `foldMap` ## 0.2.0.0 -- 2018-06-07 * Add cabal metadata: category, proper synopsis/description * Use primitive-0.6.4.0 ## 0.1.0.0 -- 2018-05-31 * Initial version.