Ошибка в заднице (5.3.4) с оператором выбора Haskell?

Работая с 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 поддерживает каррирование функций, что позволяет частично применять аргументы.


1
54
1

Ответ:

Решено

Поскольку это похоже на ошибку, я опубликовал проблему.