GADTs: (.text+0xc6): undefined reference to `Main_IsEqual_con_info'
With this module:
{-# LANGUAGE ScopedTypeVariables, GADTs #-}
import Unsafe.Coerce
data IsEqual a b where
IsEqual :: IsEqual a a
contextsEqual :: cxt1 -> cxt2 -> IsEqual cxt1 cxt2
contextsEqual = unsafeCoerce IsEqual
data Seq from to where
Nil :: Seq here here
foo :: forall from to . Seq from to
foo = f undefined undefined
where f :: from -> to -> Seq from to
f x y = case contextsEqual x y of
IsEqual -> Nil
main :: IO ()
main = case foo :: Seq () () of
Nil -> return ()
I get:
$ ghc --make z -fforce-recomp -O
[1 of 1] Compiling Main ( z.hs, z.o )
Linking z ...
z.o: In function `smk_info':
(.text+0xc6): undefined reference to `Main_IsEqual_con_info'
collect2: ld returned 1 exit status
with the HEAD and 6.8.2.
Trac metadata
Trac field | Value |
---|---|
Version | 6.8.2 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | Unknown |
Architecture | Unknown |