[Haskell-cafe] problem with boolean splicing in templates in ghc
6.10.1
Ian Lynagh
igloo at earth.li
Wed Nov 12 10:25:13 EST 2008
On Tue, Nov 11, 2008 at 02:16:21PM -0600, Leonidas Fegaras wrote:
> Seems that boolean splicing in haskell templates in ghc 6.10.1 does not
> work correctly. If you do:
>
> $((\b -> [| b |]) True)
>
> you get the error:
>
> Can't find interface-file declaration for data constructor GHC.Base.True
> Probable cause: bug in .hi-boot file, or inconsistent .hi file
> Use -ddump-if-trace to get an idea of which file caused the error
>
> It seems that GHC.Base.True is now GHC.Bool.True, but the splicing code
> still generates the former.
Fixed in HEAD and 6.10 branch, and I've added a test to the testsuite.
If you want to build a fixed template-haskell package locally then the
fix is:
hunk ./Language/Haskell/TH/Syntax.hs 264
-trueName = mkNameG DataName "base" "GHC.Base" "True"
-falseName = mkNameG DataName "base" "GHC.Base" "False"
+trueName = mkNameG DataName "ghc-prim" "GHC.Bool" "True"
+falseName = mkNameG DataName "ghc-prim" "GHC.Bool" "False"
Thanks
Ian
More information about the Haskell-Cafe
mailing list