Simplifier output explanation needed

Jens Fisseler jens.fisseler at
Wed Jun 1 08:54:24 EDT 2005

Hi everbody!

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 mailing list