Allow oneShot to work with unboxed types
Currently oneShot
requires that both the argument type and the return type of the given function have the kind *
. It would be nice if I could use unlifted types there.
The following program demonstrates this:
{-# LANGUAGE MagicHash #-}
module Foo where
import GHC.Exts
import GHC.Magic
f0 :: Int -> Int
f0 = oneShot $ \n -> n -- OK
f1 :: Int# -> Int
f1 = oneShot $ \n# -> I# n# -- Error, the argument type is unlifted
f2 :: Int -> Int#
f2 = oneShot $ \(I# n#) -> n# -- Error, the result type is unlifted
Trac metadata
Trac field | Value |
---|---|
Version | 7.10.2 |
Type | FeatureRequest |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |