silly questions about 'seq'

Dean Herington heringto@cs.unc.edu
Fri, 14 Feb 2003 21:31:48 -0500 (EST)


On Fri, 14 Feb 2003, John Meacham wrote:

> This seems to be contrary to how i thought haskell was implemented in
> ghc (and probably other systems). I was under the impression that thunks
> in ghc were opaque except for the code address at the begining of them.
> in order to evaluate something you just jump to the address stored in
> it. 
> 
> so i guess my question is, when seq'ing a function, how does one keep
> it from trying to pull an argument off the stack (and evaluating it if
> the function is strict)? are there multiple entry points for thunks, one
> which means 'evaluate to WHNF' and another which actually returns the
> result? 

What difference is there between "evaluate to WHNF" and "return a result"?

> if so, how is this information passed to polymorphic functions which
> call seq. it seems that you would have to do something different for
> abstractions and boxed values.. 
> 	John

-- Dean