I bet it's massive types.  Translate the program into system F and see.
(I remember this came up when looking at Okasaki's sequences of code
combinators.)

GHC doesn't try to hash-cons types, because it usually doesn't matter,
but I bet it does here.

S

| -----Original Message-----
| From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On
| Behalf Of Ralf Hinze
| Sent: 28 May 2003 15:32
| To: [EMAIL PROTECTED]
| Subject: GHC *is* resource hungry
| 
| Here is a harmless little program (no recursion, no data types)
| which GHC doesn't manage to compile (well, the kernel kills GHC
| after a while on a machine with generous 512MB of main memory
| and 1GB of swap space).
| 
| > begin next = next id
| > leaf k i next = next (k i)
| > fork k next = next (\ t u -> k (t + u))
| > end x = x
| > main = print (begin fork fork fork fork fork fork fork fork fork
fork leaf 0 leaf 0 leaf 0 leaf 0 leaf 0
| leaf 0 leaf 0 leaf 0 leaf 0 leaf 0 leaf 0 end)
| 
| Both Hugs and nhc98 accept it almost immediately.
| 
| Cheers, Ralf
| 
| _______________________________________________
| Glasgow-haskell-bugs mailing list
| [EMAIL PROTECTED]
| http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


_______________________________________________
Glasgow-haskell-bugs mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to