[GHC] #10481: raise# should have an open kind in its return type
GHC
ghc-devs at haskell.org
Thu Jun 4 02:51:46 UTC 2015
#10481: raise# should have an open kind in its return type
-------------------------------------+-------------------------------------
Reporter: gridaphobe | Owner:
Type: bug | Status: new
Priority: low | Milestone:
Component: Compiler | Version: 7.11
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: None/Unknown
Unknown/Multiple | Blocked By:
Test Case: | Related Tickets:
Blocking: |
Differential Revisions: |
-------------------------------------+-------------------------------------
I noticed this while working on https://phabricator.haskell.org/D861.
`error` has a wired-in type
{{{#!hs
error :: forall (a :: OpenKind). String -> a
}}}
and an implementation
{{{#!hs
error :: String -> a
error s = raise# (errorCallException s)
}}}
But GHC will actually reject the definition of `error` if you check it
against the wired-in type as `raise#` has a lifted kind.
The only reason we can compile `base` is that open kinds cannot be
expressed in Haskell source, so when GHC compiles `GHC.Err` it thinks
`error` has a lifted kind, but for every other module it uses the wired-in
type with an open kind.
I'm marking this as low priority because I don't see how it could affect
anyone outside of GHC developers, since open kinds aren't expressible in
the source language.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10481>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list