[GHC] #16384: GHC infers ill-kinded type for typed TH splice with unlifted values
GHC
ghc-devs at haskell.org
Mon Mar 4 13:59:08 UTC 2019
#16384: GHC infers ill-kinded type for typed TH splice with unlifted values
-------------------------------------+-------------------------------------
Reporter: gridaphobe | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.6.3
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: None/Unknown
Unknown/Multiple |
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
As noted in the [https://github.com/ghc-proposals/ghc-proposals/pull/209
Levity Polymorphic Lift proposal], GHC infers an ill-kinded type for typed
splices with unlifted values. For example, in GHC 8.6.3
{{{
ghci> :t [|| 1# ||]
[|| 1# ||] :: Q (TExp Int#)
}}}
`TExp Int#` is ill-kinded, so this type makes no sense. And GHC knows it's
ill-kinded, because it will actually reject the program if you supply the
type yourself.
{{{
ghci> [|| 1# ||] :: Q (TExp Int#)
<interactive>:12:23: error:
• Expecting a lifted type, but ‘Int#’ is unlifted
• In the first argument of ‘TExp’, namely ‘Int#’
In the first argument of ‘Q’, namely ‘(TExp Int#)’
In an expression type signature: Q (TExp Int#)
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16384>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list