Docs on strictness

Looking over https://wiki.haskell.org/Performance/Strictness, I am curious: Is this still accurate and a good resource to use? Is it incomplete? How does that relate to the information presented in https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/strict.html? Are there better, or more complete, or more authoritative resources on this topic you would recommend instead?

1 Like

The link to user guide is mostly concerned with GHC extensions that enable strict evaluation. The wiki page however tries to address the question when strict evaluation is needed and when it should be used. That’s probably somewhat coarse analogy, the guide provides the answer to the question how to use, while the wiki page when to use it.

The wiki page is certainly not exhaustive. It does not mention the notion of weak head normal form, nor the theory behind lazy evaluation (redexes, Church-Rosser theorem, …), but more importantly how to analyze evaluation of expressions.

2 Likes

Ah yes, the GHC doc is about the Language Extensions. I completely overlooked that in my read of it (which seems silly to overlook! but so it goes).

Thank you for taking the time to review and share your insights.

2 Likes

I guess that if you want to understand strictness (or rather, eager evaluation), then you probably also want to understand the context in which it is relevant, that is lazy evaluation. Maybe my Incomplete guide to lazy evaluation can help.

3 Likes