I'm reading about strict data constructors. The linked Wiki article states that,
"strictness annotations can make performance worse [because] a strictness annotation forces the compiler to ensure that the field is fully evaluated before building the constructor, and if it turns out that the field was already evaluated then this is just wasted work".
I do not understand why if the field was already evaluated it is wasted work, since its value is needed anyway to apply the constructor.
Is there an example that illustrates this problem or other loses of efficiency due to strictness?