On 8 août 2015, at 14:40, Oliver Charles <ollie@ocharles.org.uk> wrote:

There is reasonable reasoning here, but what you suggest breaks almost all Haskell code that has ever been written. Sounds like an idea better suited to the design of a new language :)

Maybe adding a language pragma or having both would avoid break any code?

Also, i think you need the newtype/data distinction as I believe they are operationally different wrt laziness.

Maybe keeping the `newtype` keyword would suffice?

Alexey.