The Strict Language Pragma
Strict language pragma switches Haskell from being a lazy-by-default to a strict-by-default language within a single module. It's an experimental extension with a few goals:
- Allow code that doesn't benefit from laziness to be written in a separate module that's not cluttered with bang patterns.
- Allow experiments on pure, strict-by-default languages in the style of Haskell, without needing to write a new programming languages.
- Test whether strictness can be made modular.
- Investigate how much implementations of lazy and strict languages need to differ.
- Change Haskell to a strict-by-default language.