我试图了解 Hackage 显示的基本包的结构。在https://en.wikibooks.org/wiki/Haskell/Modules之后,模块名称必须反映其源的路径;引用上述内容:
文件名是模块名加上 .hs 文件扩展名。任何点“。” 在模块名称中更改为目录。
以 Data.List 为例,这让我相信在路径 ../Data/List.hs 下应该有一个源文件,然后包含
module Data.List where ...
(模导出列表)。
另一方面,如果我浏览 Hackage 上的 Data.List 模块并点击“# Source”链接,我会被定向到各种不同模块的源文件。其中有:GHC.Base、Data.OldList、Data.Foldable、GHC.List。
首先,我本地安装的基础包显然包含一个 ../Data/List.hi 接口文件。
因此,我的问题是:如何解释这种差异?Hackage 上真正展示了什么?
提前感谢您对此事的任何见解!