|   5.4 Separate Compilation
 |   
 |    Depending on the Haskell implementation used, separate compilation of
 |    mutually recursive modules may require that imported modules contain
 |    additional information so that they may be referenced before they are
 |    compiled. Explicit type signatures for all exported values may be
 |    necessary to deal with mutual recursion. The precise details of
 |    separate compilation are not defined by this report.

Goodness folks, that's not exactly a tight spec.

Is a Haskell implementation required to support mutually recursive
modules that do not have explicit type signatures?
The quoted text makes it clear that implementations are not required
to support this when doing separate compilation, but does that just
mean that Haskell implemenations that don't support it when doing
separate compilation must provide a way of getting non-separate compilation
(i.e. some kind of "compile all these modules together" option),
or does it mean that they are not required to support it at all?
If I write a Haskell program that contains mutually recursive modules
without explicit type signatures, can I be sure that it will be portable
to all Haskell implementations?

Also, what is the situation in this regard with respect to the
existing Haskell implementations?

--
Fergus Henderson <[EMAIL PROTECTED]>   |  "I have always known that the pursuit
WWW: <http://www.cs.mu.oz.au/~fjh>   |  of excellence is a lethal habit"
PGP: finger [EMAIL PROTECTED]         |     -- the last words of T. S. Garp.



Reply via email to