seq is not cooperating with :sprint in GHCi as expected
I was playing around with strictness and performed following test:
Prelude> x = [True, False] Prelude> :sprint x x = _ Prelude> x `seq` True True Prelude> :sprint x x = _
I completely don't understand why
x = _ at this moment.
seq must evaluate one level of
x = True : _ to ensure that it is not
undefined, so why is this information lost?
I am testing it on GHCi version 8.6.3, but it is not reproducible on other versions (checked on 8.4.4, 8.2.2 and 7..).
I have asked about it on SO, so if this behavior is intended I kindly ask for explaination here https://stackoverflow.com/questions/53898220/sprint-and-seq-together-missing-evaluation to let others know.