Indeed, this is what the `primitive` package provides to thaw a `ByteArray#` without copying:
https://hackage.haskell.org/package/primitive-0.8.0.0/docs/src/Data.Primitive.ByteArray.html#unsafeThawByteArray On Mon, 24 Jul 2023, 20:17 chessai, <chessai1...@gmail.com> wrote: > Hi Adithya, > > The representations are the same. You can do this. I do this somewhat > often. Just avoid mutating in places where it could result in funky stuffs. > This is usually pretty easy to spot. > > Cheers, > chessai > > On Mon, Jul 24, 2023, 12:59 Adithya Kumar <adi.obilise...@gmail.com> > wrote: > >> 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#`? >> >> Best, >> Adithya >> _______________________________________________ >> ghc-devs mailing list >> ghc-devs@haskell.org >> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs >> > _______________________________________________ > ghc-devs mailing list > ghc-devs@haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs >
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs