[GHC] #15825: Core Lint error from Explicit Foralls Proposal
GHC
ghc-devs at haskell.org
Mon Oct 29 01:49:44 UTC 2018
#15825: Core Lint error from Explicit Foralls Proposal
-------------------------------------+-------------------------------------
Reporter: Iceland_jack | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.6.1
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:
-------------------------------------+-------------------------------------
This is using the recent Explicit Foralls Proposal #14268
{{{#!hs
{-# Language RankNTypes #-}
{-# Language PolyKinds #-}
{-# Language KindSignatures #-}
{-# Language DataKinds #-}
{-# Language FlexibleInstances #-}
{-# Options_GHC -dcore-lint #-}
type C k = (forall (x::k). *)
class X (a :: *)
instance forall (a :: C k). X (a :: *)
}}}
{{{
$ ./inplace/bin/ghc-stage2 --interactive -ignore-dot-ghci /tmp/599_bug.hs
GHCi, version 8.7.20181025: http://www.haskell.org/ghc/ :? for help
[1 of 1] Compiling Main ( 599_bug.hs, interpreted )
*** Core Lint errors : in result of Desugar (before optimization) ***
<no location info>: warning:
In the expression: C:X @ a_a1yJ
Kind application error in type ‘a_a1yJ’
Function kind = C k_a1yI
Arg kinds = [(x_a1yH, k_a1yG)]
Forall: x_a1xE
k_a1yI
(x_a1yH, k_a1yG)
<no location info>: warning:
In the expression: C:X @ a_a1xG
Kind application error in type ‘a_a1xG’
Function kind = C k_X1xQ
Arg kinds = [(x_a1yv, k_a1xF)]
Forall: x_a1xE
k_X1xQ
(x_a1yv, k_a1xF)
*** Offending Program ***
Rec {
$tcX :: TyCon
[LclIdX]
$tcX
= TyCon
6136962148358085538##
2047526523769221729##
$trModule
(TrNameS "X"#)
0#
$krep_a1zH
$tc'C:X :: TyCon
[LclIdX]
$tc'C:X
= TyCon
12994509767826319747##
2028070155085790741##
$trModule
(TrNameS "'C:X"#)
1#
$krep_a1zJ
$krep_a1zK [InlPrag=NOUSERINLINE[~]] :: KindRep
[LclId]
$krep_a1zK = $WKindRepVar (I# 0#)
$krep_a1zH [InlPrag=NOUSERINLINE[~]] :: KindRep
[LclId]
$krep_a1zH = KindRepFun krep$* $krep_a1zI
$krep_a1zI [InlPrag=NOUSERINLINE[~]] :: KindRep
[LclId]
$krep_a1zI = KindRepTyConApp $tcConstraint ([] @ KindRep)
$krep_a1zJ [InlPrag=NOUSERINLINE[~]] :: KindRep
[LclId]
$krep_a1zJ
= KindRepTyConApp $tcX (: @ KindRep $krep_a1zK ([] @ KindRep))
$trModule :: Module
[LclIdX]
$trModule = Module (TrNameS "main"#) (TrNameS "Main"#)
$fXa [InlPrag=NOUSERINLINE CONLIKE]
:: forall k (x :: k) k (a :: C k). X a
[LclIdX[DFunId],
Unf=DFun: \ (@ k_a1xF)
(@ (x_a1yv :: k_a1xF))
(@ k_a1xF)
(@ (a_a1xG :: C k_a1xF)) ->
C:X TYPE: a_a1xG]
$fXa
= \ (@ k_a1yG)
(@ (x_a1yH :: k_a1yG))
(@ k_a1yI)
(@ (a_a1yJ :: C k_a1yI)) ->
C:X @ a_a1yJ
end Rec }
*** End of Offense ***
<no location info>: error:
Compilation had errors
*** Exception: ExitFailure 1
>
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15825>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list