我有Haskell的基本知识(请原谅我,如果我的问题对于Haskellers来说看起来微不足道),并且最近一直在研究Haskell的语法.在Haskell 2010报告中,只有一个地方使用关键字"type":
topdecl ::= "type" simpletype "=" type
Run Code Online (Sandbox Code Playgroud)
可以看出,总有一个"="是必需的.在一个Haskell文件中,我看到了这段代码:
type Key m :: *
Run Code Online (Sandbox Code Playgroud)
取自TrieMap.hs第61行.
这不符合规则.我怀疑这是一个GHC扩展或类似的东西.有人能指出这段代码符合哪种语法规则吗?顺便说一句,我没有找到扩展的语法规则,不得不猜测其中的许多,是否在某处记录?
这是一个相关的类型系列声明,是TypeFamilies扩展的一部分.
它基本上在类声明中用于告诉该类具有与其每个实例相关联的类型.
我不记得有任何地方为扩展提供了很好的BNF语法,尽管我曾经在其存储库中找到了GHC的Happy语法.