[Haskell-cafe] TH error
Anton van Straaten
anton at appsolutions.com
Sat Sep 27 04:40:35 EDT 2008
Tim Newsham wrote:
> I'm goofing with TH and I have my program mostly done:
>
> http://hpaste.org/10713
>
> If I have the "$(deriveBinary ''MyData)" line commented out it
> prints out what looks to me like correct code. I can even paste
> it into a program and it compiles.
Pasting the text output can miss errors in the underlying AST, which
seems to be what's happening here.
If you examine the AST that's produced by:
putStrLn $(deriveBinary ''MyData >>= lift . show)
...you can search for occurrences of "x_" and see how they're being
constructed. The erroneous ones in this case are of the form:
(ConE x_NNNN)
...which explains the error message, "Illegal data constructor name",
because this is trying to reference a variable as though it were a
constructor. I assume the ConE should really be a VarE. The fix to the
program is obvious but I'll leave that as an exercise just in case it's
not. :)
Anton
More information about the Haskell-Cafe
mailing list