Original-Via: uk.ac.ed.mrcvax; Tue, 15 Oct 91 16:19:08 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.  Surely if a collection of mutually recursive
functions were to big to fit through the compiler then either some
non-recursive portions could be extracted into a separate module, 
or some partition be found which minimises the inter module references,
with those that remain being passed as additional parameters (sort
or run-time linking) from a parent module.   And don't forget that a 
suitably pathological collection of modules could defeat even the current 
provisions.

I just have the feeling that with mutual recursion allowed across
modules, then the concept of 'module' becomes a rather weak one; we
can chop up our monolithic code almost arbitrarily and call the bits
'modules' (I used to do this for my 1st year programming exercises!).

Of course I accept the facility is here to stay --- once you've given
a dog a bone ....!

|       Don't functional programmers write large programs? :-) :-)

Yes they do, and the bigger the program the greater the need for
genuine structure :-)

Ian


Reply via email to