recursive import

Simon Peyton-Jones simonpj at microsoft.com
Mon Jun 5 06:28:39 EDT 2006


Haskell the language allows arbitrary recursive modules.
Implementations differ in how they support this.

GHC's module-at-a-time compilation model means that GHC needs an hs-boot
file to "get started".  The manual tries to explain what you can and
can't do.  If you follow the rules it works pretty well.  We use
recursive modules extensively for compiling GHC itself, and it's just
fine with 'make'.  (ghc -M does the right thing.)

The other thing to say is that GHC's story has improved a lot since
earlier versions.  You now write "hs-boot" files (in source code form)
rather than "hi-boot" files (in interface-file syntax).   And the
hs-boot file is checked when you compile the master .hs file.  It's far
from perfect, but I think it does the job.

Simon

| -----Original Message-----
| From: glasgow-haskell-users-bounces at haskell.org
[mailto:glasgow-haskell-users-
| bounces at haskell.org] On Behalf Of Serge D. Mechveliani
| Sent: 03 June 2006 08:37
| To: glasgow-haskell-users at haskell.org
| Subject: recursive import
| 
| People,
| 
| Who knows, please, how usable are currently recursive module imports
| in Haskell, in GHC ?
| Is it essentially more difficult to `make' and support a project
| which has 50 modules, and half of all the module pairs import each
| other?
| Is recursive import in Haskell-98 ?
| 
| Thank you in advance for explanation.
| 
| -----------------
| Serge Mechveliani
| mechvel at botik.ru
| _______________________________________________
| Glasgow-haskell-users mailing list
| Glasgow-haskell-users at haskell.org
| http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


More information about the Glasgow-haskell-users mailing list