
Layout only applies when something is less indented than previous lines, I believe... e.g.
do c <- getContents "filename" putStrLn "blah"
or
do x <- getContents "filename" putStrLn "ok"
works fine but
do c <- blahAction putStrLn "blah"
obviously won't work
Jared.
On 3/2/06, Brian Hulley
Brian Hulley wrote: [snip]
So any solutions welcome :-)
Thank to everyone who replied to my queries about this whole layout issue.
One other thing I've been wanting to ask (not to change! :-)) for a while is: how is the following acceptable according to the rules in the Haskell98 report where "where" is one of the lexemes, which when followed by a line more indented than the line the layout-starting-lexeme is on, should start an implicit block:
module M where data T = ..... -- not indented!
According to my understanding of the layout algorithm, the above code would have to be written:
module M where data T = ....
Can anyone shed some light on what the formal rule is that allows the first (and very useful) way of laying out code to be ok?
Thanks, Brian.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- http://www.updike.org/~jared/ reverse ")-:"