Original-Via: uk.ac.ed.aiai; Wed, 16 Oct 91 17:56:53 BST
> > > | Our Haskell in Haskell compiler modules are often unavoidably mutually
> > > | recursive. For small programs you may be right, but for large programs
> > > | mutually recursive modules are almost inevitable:
> > > |
> > > | i) There's always some implementation limit
> > > | on module size, even with a C compiler...
> > > |
> > > | ii) Readability or the need for separate working
> > > | may demand that a large module be broken into parts.
> > >
> > > I'm not sure I buy this.
> >
> > Nor I. It looks like a confusion of module with compilation unit.
>
> Certainly not. I said separate working, not separate compilation.
> What I meant to say was "separate programming by multiple
> programmers". I plead a headache caused by simultaneously studying
> category theory and microcode :-)
I don't want to be pedantic, but there was also:
There's always some implementation limit
on module size, even with a C compiler..
and an earlier message also mentioned compiler limitations.
As for readability and the demand for separate working, I should say
that there may well be some cases where the natural modularity of a
program leads to mutually recursive modules. (Your checker example
may qualify.) If those cases are sufficiently important, that would
justify allowing such modules in the language.
However, I do not think readability and the demand for separate
working should be used to justify module divisions that would
otherwise be artificial.