[GHC] #10744: Allow oneShot to work with unboxed types

GHC ghc-devs at haskell.org
Thu Aug 6 11:57:40 UTC 2015


#10744: Allow oneShot to work with unboxed types
-------------------------------------+-------------------------------------
              Reporter:  akio        |             Owner:
                  Type:  feature     |            Status:  new
  request                            |
              Priority:  normal      |         Milestone:
             Component:  Compiler    |           Version:  7.10.2
              Keywords:              |  Operating System:  Unknown/Multiple
          Architecture:              |   Type of failure:  None/Unknown
  Unknown/Multiple                   |
             Test Case:              |        Blocked By:
              Blocking:              |   Related Tickets:
Differential Revisions:              |
-------------------------------------+-------------------------------------
 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:

 {{{#!hs
 {-# 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
 }}}

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10744>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list