On Sat, Dec 09, 2006 at 05:23:34PM -0600, Mark Hills wrote:
[patient explanation of how Hugs finds hierarchical modules]
I only have two files named Prelude.hs, the one under base and the one under hugsbase. The one under base simply wraps the one under hugsbase (it imports it at the end), I'm assuming to allow the definitions to be Hugs-specific (since they use primitives) while still providing a standard location for the Prelude, in case you want to run your programs using a different Haskell system like GHC.
Another reason for a separate Hugs.Prelude is that it exports some extra things. This is because Haskell 98 has the Prelude and some other library modules import each other, and Hugs does not support mutually recursive modules,
I ran into the mutual recursion error when I attempted to load the GS.hs provided for _The Haskell Road..._. The term generating the error was 'case' although there was no instance of that word in GS.hs. I still have a lot to learn about how Hugs works. Dave
so it simulates it by having the Prelude and the other modules import another module with the real definitions (Hugs.Prelude). Also, Prelude.hs is shared code with GHC, except for the imports (courtesy of cpp).
participants (1)
-
dfeustel@mindspring.com