Rene de Visser
rene_de_visser at hotmail.com
Fri Apr 7 06:59:21 EDT 2006
As deepSeq has a non local effect, I think it requires a non-local source
transformation to implement it. One option would be for the compiler to
create a second deepSeq version of every function definition.
If the user defines a function f
f x = g h x
then the compile creates an additional function !!f
!!f x = temp `seq` temp
where temp = !!g !!h x
which uses the compiler generated functions !!g and !!h.
It looks like library writers are increasingly doing this manually. Creating
a strict and non strict version of a number of the functions provided. This
would automate that.
More information about the Haskell-prime