I am trying to understand the structure of the base package as displayed by Hackage. Following https://en.wikibooks.org/wiki/Haskell/Modules a module name must reflect the path to its source; to quote the above:
The name of the file is the name of the module plus the .hs file extension. Any dots '.' in the module name are changed for directories.
Taking Data.List as an example, this lead me to believe that there should be a source file under a path ../Data/List.hs that then contains
module Data.List where ...
(modulo export list).
On the other hand, if I browse the Data.List module on Hackage and follow the '# Source' links, I am directed to source files for various different modules. Among those are: GHC.Base, Data.OldList, Data.Foldable, GHC.List.
On the first hand again, my local installation of the base package clearly contains a ../Data/List.hi interface file.
My question is therefore: How can the discrepancy be explained? What is really on display on Hackage?
Thanks in advance for any insight on the matter!