Hi all,

After thinking about this some more I think we should go with option one (the most strict one). My arguments in favor are that

 * it's easier to explain and remember,
 * it's harder to be too lazy by mistake*,
 * Simon M thinks it'll help GHC to avoid some redundant seq:s, and
 * if we can specialize the structure in the future to use monomorphic representations we can pass the value unboxed.

Milan, what are your current thoughts?

* It's easier to be too lazy by mistake if there are a few functions that are less strict than the remaining ones.

Cheers,
Johan