Simplifier output explanation needed
jens.fisseler at fernuni-hagen.de
Wed Jun 1 08:54:24 EDT 2005
I'm currently trying to optimize some code, in particular trying to make
some functions as strict as possible. To do this, I quite often look for
strictness annotations either in the interface files or the the
simplifier output. Doing this, something odd occured to me: inserting a
'$!' into a function call, trying to enforce eager evaluation, the
simplifier output changed. Ok, I should expect this, but I don't
understand the change. The function name got '$s' as a prefix and the
strictness annotation ('Str: DmdType SSL') vanished.
So my question is what all those different prefixes mean. I've stumbled
across at least '$s' and '$w' (worker wrapper?). Why did the strictness
annotation disappear? Is there any documentation that can enlighten me?
More information about the Glasgow-haskell-users