New patches: [inner layout shorter than outer implies empty outer layout in Haskell 98 Simon Marlow **20061220112345] { hunk ./Layout.hs 19 - | n >= n' = lbrace:layout rs (Layout h n:Layout h' n':ls) - | otherwise = error "inner layout can't be shorter than outer one" + | n > n' = lbrace:layout rs (Layout h n:Layout h' n':ls) + | otherwise = lbrace : rbrace : layout rs (Layout h' n':ls) } ['where' can close 'do' Simon Marlow **20061220112352] { hunk ./Layout.hs 32 +layout (t@(Token "where"):rs) ls = case ls of + Layout l n : rest | l `notElem` ["where","let","of"] + -> rbrace : t : layout rs rest -- 'where' closes 'do' + _otherwise -> t : layout rs ls + } Context: [add support for lhs files John Meacham **20061210030020] [handle hierarchical module names properly John Meacham **20061209165420] [allow ending comments with things like ----} John Meacham **20061209055254] [allow for final 'in' to be indented less than its let block. John Meacham **20061209054310] [include line pragmas in output of preprocessor John Meacham **20061209050934] [allow passing 3 arguments so it can work with ghc's -F mode John Meacham **20061209045219] [treat , as a layout terminator inside lists and tuples John Meacham **20061209045144] [have it ignore cpp pragmas John Meacham **20061209045129] [initial import John Meacham **20061208095342] Patch bundle hash: 297c3ab9ebfef7160238b053257961cd3ab46274