В продакшн-коде часто встречаются обычные вертикальные портянки do-блоков с хождением в базу и обработкой результатов этих хождений. Тут справится обычный автоотступ вашего любимого редактора
Увы, "всегда одинаково некрасиво" получалось до сих пор. На мой вкус, конечно. Псто я давно хаскеляю (сравнительно), раньше не было такого разнообразия форматтеров, а те, что были, часто ломались "на пустом месте".
functionWithLongName :: Foo a => Bar a => [a] -> b -> c Я так привык делать, например. Но нынче модно висящие стрелки и запятые писать, поэтому и форматтеры в эту сторону смотрят...