Haskell报告中一个不起眼的角落

Mat*_*hid 7 syntax haskell

Haskell 2010报告的第5.2节涉及模块导出列表.有一次,它:

导出列表中的实体可以命名如下:

  1. 无论是在模块体中声明还是导入的值,字段名或类方法都可以通过将值的名称作为qvarid来命名,该值必须在范围内.操作符应括在括号中,以将它们转换为qvarids.

...

但是,呃......我错过了什么吗?因为根据第10章中的语法参考:

qvarid →[ monid.] varid

varid →( { | | 数字 |'})

那么宇宙中将运算符放入括号中会将其转换为qvarid?它看起来像一个运算符显然是一个varsym(或可能是qvarsym).

有谁知道这里发生了什么?我的意思是,显然 Haskell肯定支持在导出列表中编写运算符,但报告中的语法描述似乎没有意义......

Mat*_*hid 4

等等,等等……根据 10.5 节中给出的无控制语法:

导出 → qvar | qtycon ... | 数量... | module 莫尼德

...

varvarid | ( 瓦尔西姆 )

qvarqvarid | ( qvarsym )

所以看起来它不是qvarid ,它应该qvar。所以我猜这只是一个错字?官方报告中是否有解决此类问题的流程?

  • 哦,[在 wiki 上](https://wiki.haskell.org/Language_and_library_specification) 发现:“如果您在报告中发现错误,请将其发送到 [haskell-prime 邮件列表](http://www .haskell.org/mailman/listinfo/haskell-prime)(您必须先注册),或直接发送给现任委员会成员之一。” (4认同)