>module Language.Haskell.Her.FromClutterToLines where
>import Language.Haskell.Her.HaLay
>import Data.List.Split
| When we get the tokss from her-parser's ready, they're a bit cluttered. I'm not sure what Dr. McBride had in mind when he made that mess. But this doesn't mater, from this clutter we can create a list of lines which is aware of haskell's brackets. If a multi-line clause is inside brackets, then we keep the whole section in the same "line".
>fromClutterToLines :: [[Tok]] -> [[Tok]]
>fromClutterToLines tokss =
> split (keepDelimsL $
> whenElt
> (\a ->
> case a of
> NL _ -> True
> _ -> False))
> $ (NL (" ",0)) : concat tokss