Should `test' evaluate to `[1,2,3,4,5,6]' or `[4,5,6,4,5,6,4,5,6]'?
That is, should the `do' syntactic sugar expand to code that uses
plain `' or `Prelude.'?
The Haskell 1.4 report is not clear on this point, IMHO.
Here is a quote from the report (3 Expressions):
Free variables and
Consider the following code:
test :: [Int]
test = let return x = [x]
x = f = x ++ (f (last x))
x y = x = (\ _ - y)
indo { [1,2,3]; [4,5,6] }
Should `test' evaluate to `[1,2,3,4,5,6]' or `[4,5,6,4,5,6,4,5,6]'?
That is, should the `do' syntactic