
The Report (section 9.3, especially notes 1 and 2) says "A nested context must be further indented than the enclosing context", ...
Okay, I understand, but the behavoir of hugs vs ghc vs Language.Haskell.Parser is still strange: The sniplets ** A: g xs = do ys <- workM xs if null ys then return [] else do zs <- workM ys return zs ** B: g xs = do ys <- workM xs if null ys then return [] else do zs <- workM ys return zs ** C: f xs = case xs of y:ys -> case ys of z:zs -> zs ** D: f x = case x of False -> do { return x; } are accepted by A B C D ghc yes no no yes hugs yes no no no Language.Haskell.Parser.parseModule no yes yes no report no no no no It seems to me that the layout rule is incorrect implemented everywhere... regards, -- -- Mirko Rahn -- Tel +49-721 608 7504 -- --- http://liinwww.ira.uka.de/~rahn/ ---