recursive modules in Haskell

Iavor S. Diatchki diatchki@cse.ogi.edu
Mon, 17 Mar 2003 14:41:26 -0800


hi,

i can't really argue with simon he is the real compiler expert.
and i am not familiar with the inner workings of GHC, so my argument is 
even weaker. and in any case discussions on the haskell mailing list 
very rarely have any effect except for their entertainment value during 
boring meetings... so if you are sitting bored somewhere read on :-)

in my defence, we do have recursive modules implemented in our front 
end, and it can do type checking (which is presumably where the 
difficulties with recursive modules arise).  and implementing the 
recursive modules was definitely not the hardest part to get working.

.hi-boot files indeed do the job.  so do seq, the monomorphism 
restriction, defaulting and unsafePerformIO. it is just that they don't 
do the job very well.

i am curious however, what is difficult about implementing recursive 
modules (that is, if it can be explained without getting into the 
technical details of GHC).

bye
iavor

Simon Peyton-Jones wrote:
> | there is no need to use such hacks.  it is not dificult to add suport 
> | for mutually recursive modules to an implementation directly. 
> | unfortunatley none of the working haskell implementations support 
> | recursive modules,
> 
> Simple in principle, not so simple in practice.  If it was easy to make
> GHC do mutually recursive modules we'd do it right away.  It's certainly
> possible but it's real work, and .hi-boot files, while clunky, do the
> job.
> 
> S
> 


-- 
==================================================
| Iavor S. Diatchki, Ph.D. student               |
| Department of Computer Science and Engineering |
| School of OGI at OHSU                          |
| http://www.cse.ogi.edu/~diatchki               |
==================================================