
24 Jul
2023
24 Jul
'23
3:21 p.m.
Adithya Kumar
Hello all,
I have a use-case where I want to convert `ByteArray#` to `MutableByteArray#` without the copy overhead.
Is the underlying memory structure of `ByteArray#` and `MutableByteArray#` the same?
If I can guarantee that I won't mutate my `MutableByteArray#`, can I use `unsafeCoerce#` on `ByteArray#` and treat it as `MutableByteArray#`?
Note that a future release of GHC (IIRC 9.10) will have a (no-op) operation for precisely this purpose. See [1]. Cheers, - Ben [1] https://gitlab.haskell.org/ghc/ghc/-/issues/22710