[GHC] #8739: ($) returning kind # no longer type checks
GHC
ghc-devs at haskell.org
Wed Feb 5 17:14:05 UTC 2014
#8739: ($) returning kind # no longer type checks
------------------------------------+-------------------------------------
Reporter: NeilMitchell | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.8.1-rc1
Keywords: | Operating System: Unknown/Multiple
Architecture: Unknown/Multiple | Type of failure: None/Unknown
Difficulty: Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: |
------------------------------------+-------------------------------------
Given:
{{{
{-# LANGUAGE MagicHash #-}
module InnerLoop(go) where
import GHC.Exts
go :: () -> Int#
go () = go $ ()
}}}
This type checks fine on GHC 7.2.3, and I have a similar version that
works fine with 7.4 and 7.6. However, with GHC 7.8.20140130, I get:
{{{
InnerLoop.hs:5:9:
Kind incompatibility when matching types:
s0 :: *
Int# :: #
In the expression: go $ ()
In an equation for `go': go () = go $ ()
}}}
This code was reduced from [http://neilmitchell.blogspot.co.uk/2014/01
/optimising-haskell-for-tight-inner-loop.html this blog post], and code
which triggers a similar bug can be
[https://github.com/ndmitchell/shake/issues/94 found in Shake].
I know {{{$}}} has special type checking rules, were they removed or
changed?
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8739>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list