
#14196: Replace ArrayArray# with either UnliftedArray# or Array# -------------------------------------+------------------------------------- Reporter: andrewthad | Owner: (none) Type: feature request | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.1 Resolution: | Keywords: | LevityPolymorphism Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by andrewthad): If `UnliftedNewtypes`, described in https://github.com/ghc-proposals/ghc- proposals/pull/98, is accepted, it will be trivial to reimplement `ArrayArray#`, and its related functions: {{{ newtype ArrayArray# = ArrayArray# (UnliftedArray# ByteArray#) }}} It's not important to use `ByteArray#` here. You could use any unlifted type since you're just going to unsafe coerce it when you pull in out or put it in. I guess these operators would need to go in `GHC.Exts` or something like that, which would probably still break some people's code since we all love to import `GHC.Prim` so much, but at least it provides a good backwards-compatibility option. I'll wait to see if `UnliftedNewtypes` is accepted. If so, I'll write this up as a proposal. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14196#comment:6 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler