- Restore support for versions of base that do not export
liftA2
from the prelude.
- Update package metadata.
- Make it work with primitive-unlifted-2.1, which drops support for older primitive-unlifted.
- Add
quintupleton
andsextupleton
. - Add
construct(1|2|3|4|5|6)
aliases for constructing arrays with a small known number of elements.
- Add strict
foldrM
- Make benchmarks build
- Add strict
ifoldlZipWith
andfoldlZipWith
- Allow building with GHC 9.2.1.
- Drop support for GHC 8.8 and earlier.
- Add
itraverseP
- Add
deleteAt
andifoldr
- Add
Slice
,MutableSlice
. - Split
Contiguous
intoContiguousSlice
andContiguous
. - Add
shrink
andunsafeShrinkAndFreeze
- Add
ifoldlM'
. - Add
foldrZipWith
andifoldrZipWith
. - Add
foldlZipWithM'
andifoldlZipWithM'
. - Add
all
andany
. - Add
run
. Use it internally to accerelate prevent GHC from boxing results inrunST
. - Add
quadrupleton
.
- Add
izipWith
. - Compatibility with
primitive-0.7.1.0
.
- 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'
.
- Allow building with
primitive-0.7
. This required depending on theprimitive-unlifted
package to provide the removedUnliftedArray
api.
- 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 forSmallArray
- 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
topure
- Add initial test suite (some unit tests that check implementations against base/vector versions of the same functions)
- Export
unsafeFreeze
,copy
,write
, - Rename
sameMutable
toequalsMutable
- Add
freeze
as a method toContiguous
- Add more folds
- Mark more functions as INLINEABLE
- Add
thaw
as a method toContiguous
- Add
singleton
,doubleton
,tripleton
as methods toContiguous
- Add
map'
,imap
,mapMutable'
,imapMutable'
- Document the need for
Always
- Generalise API: from
ST s
toPrimMonad m
- Add NFData
rnf
function for deeply evaluatingContiguous
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 toContiguous
. - Add
traverse
,itraverse
,traverseP
,foldMap
- Add cabal metadata: category, proper synopsis/description
- Use primitive-0.6.4.0
- Initial version.