Работая с Graham Hutton Programming in Haskell, второе издание, у меня есть следующий фрагмент кода:
int :: Parser Int
int =
do char '-'
n <- nat
return (-n)
<|> nat
Приведенное выше форматирование является результатом применения 5.3.4 к фрагменту кода.
Насколько я знаю, этот код эквивалентен:
int :: Parser Int
int =
(do char '-'
n <- nat
return (-n)) <|>
nat
По сути, последнее форматирование — результат того же хиндента, и я считаю его правильным.
Не является ли прежнее форматирование если не неверным, то как минимум сбивающим с толку? Это ошибка? Стоит сообщить на https://github.com/mihaimaruseac/hindent/issues, может быть?
Кстати, форматирование в книге такое:
int :: Parser Int
int = do char '-'
n <- nat
return (-n)
<|> nat
🤔 А знаете ли вы, что...
Haskell поддерживает каррирование функций, что позволяет частично применять аргументы.