
Brandon Allbery wrote:
main = do
$(makeLetStatement "a") -- print a
Is that the actual indentation you used? Because it's wrong if so, and the error you would get is the one you're reporting. Indentation matters in Haskell.
Yes, it matters, but not after "main = do": all the lines can start at the beginning of the line. Am I wrong? Or do I not understand what you say?
In an equation for `main': main = do { $(makeLetStatement "a") }
You cannot *end* a do with a let-statement; it requires something else following it. You have nothing following it, as shown by the above fragment from the error message.
Yes, I have explained why: to be able to see the evaluation of the splice; otherwise I obtain "Not in scope: `a'" if I uncomment "-- print a" at the end of my code; I have explained everything in my initial post. TP