template-haskell: Improve documentation of strictness annotation types (#21380)
In certain situations reifyConStrictness
returns DecidedLazy
for strict fields. This is quite confusing and this MR aims to document this behaviour.
The reason this happens is because reifyConStrictness
gives us the strictness annotations of fields if any, and when a field cannot be bottom then there is no need to have a strictness annotation.
The corresponding ticket is #21380 (closed). Another approach would be to rename or expand DecidedStrictness
to deal with these edge cases, but that would lead to a breaking change.