Core Lint error with invalid newtype declaration
This gives a Core Lint error
{-# Language QuantifiedConstraints #-}
{-# Language TypeApplications #-}
{-# Language TypeOperators #-}
{-# Language PolyKinds #-}
{-# Language FlexibleInstances #-}
{-# Language DataKinds #-}
{-# Language TypeFamilies #-}
{-# Language MultiParamTypeClasses #-}
{-# Language ConstraintKinds #-}
{-# Language UndecidableInstances #-}
{-# Language GADTs #-}
{-# Options_GHC -dcore-lint #-}
import Data.Kind
type Cat ob = ob -> ob -> Type
class Ríki (obj :: Type) where
type (-->) :: Cat obj
class Varpi (f :: dom -> cod)
newtype
(··>) :: Cat (a -> b) where
Natu :: Varpi f
=> (forall xx. f xx --> f' xx)
-> (f ··> f')
instance
Ríki cod
=> -------------
Ríki (dom -> cod)
where
type (-->) = (··>) @dom @cod
$ ghci -ignore-dot-ghci 568_bug.hs
GHCi, version 8.7.20181017: http://www.haskell.org/ghc/ :? for help
[1 of 1] Compiling Main ( 568_bug.hs, interpreted )
ghc-stage2: panic! (the 'impossible' happened)
(GHC version 8.7.20181017 for x86_64-unknown-linux):
Core Lint error
<no location info>: warning:
In the type ‘(··>)’
Found TcTyCon: ··>[tc]
Call stack:
CallStack (from HasCallStack):
callStackDoc, called at compiler/utils/Outputable.hs:1160:37 in ghc:Outputable
pprPanic, called at compiler/typecheck/FamInst.hs:171:31 in ghc:FamInst
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
> :q
Leaving GHCi.
Trac metadata
Trac field | Value |
---|---|
Version | 8.6.1 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |