Opened 11 months ago

Closed 9 months ago

Last modified 8 months ago

#15807 closed bug (fixed)

GHC panic with visible kind applications

Reported by: Iceland_jack Owned by:
Priority: normal Milestone: 8.8.1
Component: Compiler Version: 8.6.1
Keywords: TypeApplications Cc: mnguyen
Operating System: Linux Architecture: Unknown/Multiple
Type of failure: None/Unknown Test Case: typecheck/should_fail/T15807
Blocked By: Blocking:
Related Tickets: Differential Rev(s): Phab:D5229
Wiki Page:

Description

Using the https://phabricator.haskell.org/D5229 diff

This is fine

{-# Language RankNTypes       #-}
{-# Language TypeApplications #-}
{-# Language PolyKinds        #-}
{-# Language GADTs            #-}

import Data.Kind

data
  App :: forall (f :: Type -> Type). Type -> Type
  where
  MkApp :: f a -> App @f a

Kind polymorphic is fine

{-# Language RankNTypes       #-}
{-# Language TypeApplications #-}
{-# Language PolyKinds        #-}
{-# Language GADTs            #-}

import Data.Kind

data
  App :: forall k (f :: k -> Type). k -> Type
  where
  MkApp :: f a -> App @k @(f :: k -> Type) (a :: k)

But offing the visibility of k fails

{-# Language RankNTypes       #-}
{-# Language TypeApplications #-}
{-# Language PolyKinds        #-}
{-# Language GADTs            #-}

import Data.Kind

data
  App :: forall (f :: k -> Type). k -> Type
  where
  MkApp :: f a -> App @(f :: k -> Type) (a :: k)
{-# Language RankNTypes       #-}
{-# Language TypeApplications #-}
{-# Language PolyKinds        #-}
{-# Language GADTs            #-}

import Data.Kind

data
  App :: forall (f :: k -> Type). k -> Type
  where
  MkApp :: f a -> App @f a
$ ghci -ignore-dot-ghci 581_bug.hs
GHCi, version 8.7.20181017: http://www.haskell.org/ghc/  :? for help
[1 of 1] Compiling Main             ( 581_bug.hs, interpreted )
ghc-stage2: panic! (the 'impossible' happened)
  (GHC version 8.7.20181017 for x86_64-unknown-linux):
        ASSERT failed!
  2
  1
  f_a1yB[tau:1]
  f_a1yx[sk:1]
  Call stack:
      CallStack (from HasCallStack):
        callStackDoc, called at compiler/utils/Outputable.hs:1160:37 in ghc:Outputable
        pprPanic, called at compiler/utils/Outputable.hs:1219:5 in ghc:Outputable
        assertPprPanic, called at compiler/typecheck/TcMType.hs:778:54 in ghc:TcMType

Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug

> 

Change History (3)

comment:1 Changed 11 months ago by goldfire

The types involved here do not have CUSKs. Since My's last rebase, I've committed a major change to the way non-CUSK types are handled, in a way that will likely affect GHC's behavior here. I'm hoping that when she rebases, this panic will go away.

Regardless, more good fodder for the test suite.

comment:2 Changed 9 months ago by RyanGlScott

Differential Rev(s): Phab:D5229
Milestone: 8.8.1
Resolution: fixed
Status: newclosed
Test Case: typecheck/should_fail/T15807

This was fixed in 17bd163566153babbf51adaff8397f948ae363ca:

Author: mynguyen <mnguyen1@brynmawr.edu>
Date:   Tue Dec 18 11:52:26 2018 -0500

    Visible kind application
    
    Summary:
    This patch implements visible kind application (GHC Proposal 15/#12045), as well as #15360 and #15362.
    It also refactors unnamed wildcard handling, and requires that type equations in type families in Template Haskell be
    written with full type on lhs. PartialTypeSignatures are on and warnings are off automatically with visible kind
    application, just like in term-level.
    
    There are a few remaining issues with this patch, as documented in
    ticket #16082.
    
    Includes a submodule update for Haddock.
    
    Test Plan: Tests T12045a/b/c/TH1/TH2, T15362, T15592a
    
    Reviewers: simonpj, goldfire, bgamari, alanz, RyanGlScott, Iceland_jack
    
    Subscribers: ningning, Iceland_jack, RyanGlScott, int-index, rwbarton, mpickering, carter
    
    GHC Trac Issues: `#12045`, `#15362`, `#15592`, `#15788`, `#15793`, `#15795`, `#15797`, `#15799`, `#15801`, `#15807`, `#15816`
    
    Differential Revision: https://phabricator.haskell.org/D5229

comment:3 Changed 8 months ago by Richard Eisenberg <rae@…>

In 17bd1635/ghc:

Visible kind application

Summary:
This patch implements visible kind application (GHC Proposal 15/#12045), as well as #15360 and #15362.
It also refactors unnamed wildcard handling, and requires that type equations in type families in Template Haskell be
written with full type on lhs. PartialTypeSignatures are on and warnings are off automatically with visible kind
application, just like in term-level.

There are a few remaining issues with this patch, as documented in
ticket #16082.

Includes a submodule update for Haddock.

Test Plan: Tests T12045a/b/c/TH1/TH2, T15362, T15592a

Reviewers: simonpj, goldfire, bgamari, alanz, RyanGlScott, Iceland_jack

Subscribers: ningning, Iceland_jack, RyanGlScott, int-index, rwbarton, mpickering, carter

GHC Trac Issues: `#12045`, `#15362`, `#15592`, `#15788`, `#15793`, `#15795`, `#15797`, `#15799`, `#15801`, `#15807`, `#15816`

Differential Revision: https://phabricator.haskell.org/D5229
Note: See TracTickets for help on using tickets.