Simplifier output explanation needed

Simon Marlow simonmar at
Thu Jun 2 04:22:41 EDT 2005

On 01 June 2005 13:54, Jens Fisseler wrote:

> 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? 

$s means "specialised" I believe (Simon PJ is away until next week, so
you'll have to wait until then for a definitive answer).


More information about the Glasgow-haskell-users mailing list