Andrew Martin
Andrew Martin
I think this is pretty reasonable, particularly because the variant returning a mutable array is the more fundamental one. The immutable variants are just the mutable variants but with the...
For the sake of symmetry, I would accept these, since it cannot hurt to have them. But you're right that using `PrimArray` is preferred.
Is there anything I can do to move this forward?
I've squashed and rebased. This adds `foldlWithKeyM` and `foldrWithKeyM` functions for the `Data.Map` data structure, both of which are lazy in the accumulator. It's ready for review.
It could use some tests like the [test for `mapArray'`](https://github.com/haskell/primitive/blob/2ad71289bb2abd2ba1af625e5a3f3a8930ceb36f/test/main.hs#L57). One of the property tests you'll want is named [imapMProp](http://hackage.haskell.org/package/quickcheck-classes-0.4.9/docs/Test-QuickCheck-Classes-IsList.html#v:imapMProp) instead of `itraverseProp`. The `since` annotations seem too high. Should...
I don't see a way to do this without breaking the API, and API stability is important for this library. I've thought before about what you suggest. Something like this...
I think you intended to write "pinned" but wrote "unpinned" instead. The arrays from `ByteString` are guaranteed to be pinned.
I think that it's worth keeping both around. Since the `sizeOf#` method measures size in bytes, I don't think that the machinery in `primitive` can be used for this. It...
Consider this still a work in progress. This currently builds and works as expected, but I'm still exploring the design space.
I'm actually pretty satisfied with where this is now. I still need to add more documentation though. Would anyone mind reviewing this?