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
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe