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

Reply via email to