Haskell选择运算符的hindent(5.3.4)中存在漏洞?

rwqw0loc  于 2023-02-13  发布在  其他
关注(0)|答案(1)|浏览(146)

在Haskell第二版的Graham赫顿's Programming中,我有以下代码:

int :: Parser Int
int =
  do char '-'
     n <- nat
     return (-n)
     <|> nat

上面的格式是将hindent 5.3.4应用于代码段的结果。
据我所知,该代码相当于:

int :: Parser Int
int =
  (do char '-'
      n <- nat
      return (-n)) <|>
  nat

事实上,后一种格式也是同样hindent的结果,我认为它是正确的。
前一种格式,如果不是不正确的话,至少是令人困惑的?这是hindent中的一个bug吗?也许值得在https://github.com/mihaimaruseac/hindent/issues中报告?
顺便说一下,书中的格式是:

int :: Parser Int
int = do char '-'
         n <- nat
         return (-n)
      <|> nat
mzsu5hc0

mzsu5hc01#

因为它看起来像一个bug,我已经发布了an issue

相关问题