Skip to content

ghc panic: mergeSATInfo

ghc panic with option -O and -fstatic-argument-transformation. Affected versions include 8.2.2 and HEAD (8.5.20180108)

{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE PartialTypeSignatures #-}
{-# LANGUAGE PolyKinds             #-}
{-# LANGUAGE TypeFamilies          #-}
{-# LANGUAGE TypeOperators         #-}

module T12844 where

barWraper :: ('(r,r') ~ Head rngs, Foo rngs) => FooData rngs
barWraper = bar

bar :: (_) => FooData rngs
bar = barWraper

data FooData rngs

class Foo xs where foo :: (Head xs ~ '(r,r')) => FooData xs

type family Head (xs :: [k]) where Head (x ': xs) = x

Log:

ghc: panic! (the 'impossible' happened)
  (GHC version 8.5.20180108 for x86_64-unknown-linux):
	mergeSATInfo
  Left:STSTSTSTSTSVSV, Right:STSTSTSTSTSVSC
  Call stack:
      CallStack (from HasCallStack):
        callStackDoc, called at compiler/utils/Outputable.hs:1150:37 in ghc:Outputable
        pprPanic, called at compiler/simplCore/SAT.hs:152:20 in ghc:SAT

Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
Trac metadata
Trac field Value
Version 8.2.2
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information