Exponential-long compilation of code with Implicit params
Some time ago I stumbled upon GHC hanging on my code. After some experiments I managed to minify it to:
{-# LANGUAGE ImplicitParams #-}
data D = D Int deriving Show
slow_to_compile :: IO () slow_to_compile = do
tst1 <- return 1
let ?tst1 = tst1 let ?tst2 = tst1 let ?tst3 = tst1 let ?tst4 = tst1 let ?tst5 = tst1 let ?tst6 = tst1 let ?tst7 = tst1
print $ D ?tst1
It compiles, but takes a while. Every additional binding doubles compilation time.
Trac metadata
Trac field | Value |
---|---|
Version | 7.6.2 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |