Hi cafe!<div><br></div><div>I'm hitting a very strange problem when using haskell-src-exts and haskell-src-exts-qq. Consider the following module:</div><div><br></div><div>\begin{code}</div><div>{-# Language QuasiQuotes #-}</div>
<div>module TestBug where</div><div><br></div><div>import Language.Haskell.Exts</div><div>import Language.Haskell.Exts.QQ</div><div><br></div><div>unit = TyTuple Boxed []</div><div><br></div><div>ty = [dec| quux :: (a,b) |]</div>
<div>\end{code}</div><div><br></div><div>This module doesn't load for me using ghc 7.0.3. I've pasted the full error message at the end of this email but the error message begins with the following lines:</div><div>
<br></div><div><div>TestBug.hs:11:11:</div><div> Can't find interface-file declaration for variable Language.Haskell.Exts.Syntax.Boxed</div><div> Probable cause: bug in .hi-boot file, or inconsistent .hi file</div>
</div><div><div> Use -ddump-if-trace to get an idea of which file caused the error</div></div><div><br></div><div>Using -ddump-if-trace didn't help me much.</div><div><br></div><div>The funny thing is that if I comment out the last line (the definition of 'ty') then the module loads just fine even though it uses the Boxed type in the definition of 'unit'. So the problem only manifests itself when I use tuples from haskell-src-exts-qq. Everything else that I've used from haskell-src-exts-qq works fine, it's just when I try to use tuples that things go haywire.</div>
<div><br></div><div>I've tried to remove the packages and reinstall them but it didn't help.</div><div><br></div><div>Any clues?</div><div><br></div><div>Josef</div><div><br></div><div><div>TestBug.hs:11:11:</div>
<div> Can't find interface-file declaration for variable Language.Haskell.Exts.Syntax.Boxed</div><div> Probable cause: bug in .hi-boot file, or inconsistent .hi file</div><div> Use -ddump-if-trace to get an idea of which file caused the error</div>
<div> In the first argument of `Language.Haskell.Exts.Syntax.TyTuple', namely</div><div> `Language.Haskell.Exts.Syntax.Boxed'</div><div> In the third argument of `Language.Haskell.Exts.Syntax.TypeSig', namely</div>
<div> `Language.Haskell.Exts.Syntax.TyTuple</div><div> Language.Haskell.Exts.Syntax.Boxed</div><div> ((:)</div><div> (Language.Haskell.Exts.Syntax.TyVar</div><div> (Language.Haskell.Exts.Syntax.Ident ((:) 'a' [])))</div>
<div> ((:)</div><div> (Language.Haskell.Exts.Syntax.TyVar</div><div> (Language.Haskell.Exts.Syntax.Ident ((:) 'b' [])))</div><div> []))'</div><div> In the expression:</div>
<div> Language.Haskell.Exts.Syntax.TypeSig</div><div> (SrcLoc</div><div> ((:)</div><div> '<'</div><div> ((:)</div><div> 'u'</div><div> ((:)</div>
<div> 'n'</div><div> ((:)</div><div> 'k'</div><div> ((:)</div><div> 'n'</div><div> ((:)</div>
<div> 'o'</div><div> ((:)</div><div> 'w' ((:) 'n' ((:) '>' ((:) '.' ((:) 'h' ((:) 's' []))))))))))))</div>
<div> 1</div><div> 2)</div><div> ((:)</div><div> (Language.Haskell.Exts.Syntax.Ident</div><div> ((:) 'q' ((:) 'u' ((:) 'u' ((:) 'x' [])))))</div>
<div> [])</div><div> (Language.Haskell.Exts.Syntax.TyTuple</div><div> Language.Haskell.Exts.Syntax.Boxed</div><div> ((:)</div><div> (Language.Haskell.Exts.Syntax.TyVar</div>
<div> (Language.Haskell.Exts.Syntax.Ident ((:) 'a' [])))</div><div> ((:)</div><div> (Language.Haskell.Exts.Syntax.TyVar</div><div> (Language.Haskell.Exts.Syntax.Ident ((:) 'b' [])))</div>
<div> [])))</div><div>Failed, modules loaded: none.</div></div><div><br></div>