Add a Strict LANGUAGE pragma
LANGUAGE pragma would allow us to experiment with writing in a strict sub-language. Since this pragma works on a per module basis, it needs to be modular. I propose the following semantics:
- Patterns are strict at the top-level, as if they had a top-level bang, unless an explicit ~ is used to make the pattern lazy.
- Functions evaluate their parameters to WHNF.
- Data type fields are strict (as if they had a bang-pattern).
Design page: StrictPragma