Stefan O'Rear wrote:
On Sat, Nov 17, 2007 at 04:10:58PM +0000, Andrew Coppin wrote:

OK. I presume this is due to the fact that the result of executing an expression at compile-time could be arbitrarily large?

Yes, and it's not even guaranteed to terminate.

That would be "arbitrarily large", yes. ;-)

Are there any buttons that can be twiddled to control this behaviour?

Not that I'm aware of, though you can hack something with RULEs
probably.

I was just wondering whether there was some way to say "please unravel this expression until the result is X units big" or something. Oh well.

(I'm sure Template Haskell could do it if you wanted it that badly... or just write a small Haskell program that writes a Haskell program. Eeps!)

For that matter, when I say "[4,7,2,9]", what does that compile into? Some data structures in memory? Or code to actually build said structures?

Both.  A curious feature of the STG machine is that constructor thunks
and evaluated data are represented identically in memory.

Ooo... As per the Lambdacats "Boxed cat has a uniform representation"?

Well, presumably the guys who designed STG did it this way for a really good reason, and they know far more than me, so... ;-)

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to