GHC hangs while producing error message for incorrect TypeFamilies application
Here's a minimally reproducible example:
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE MultiParamTypeClasses #-}
module Main where
newtype Token f a = Token { unToken :: f a }
class Class x (f :: * -> *) where
type Meta x f :: *
type Body x f :: *
type Body x f = Token f Meta
main :: IO ()
main = return ()
This hangs like so
[2 of 2] Compiling Main ( app/Main.hs, .stack-work/dist/x86_64-linux/Cabal-2.0.1.0/build/foo-exe/foo-exe-tmp/Main.o )
I tested on 8.2.2 and 8.0.2 and got the same behavior.
The closest existing bug report I could find was #12386 (closed).
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 |