My personal intuition suggests that most instances should be "strict in the leaves, lazy in the spine" like the [] instance. However, most of them seem to be lazy all over the place.
NB: Data.Sequence.Seq actually needs its unzip to be lazy in the leaves in order to be lazy in the spine. If it tried to be strict in the leaves but lazy in the spine, it would end up being strict in part of the spine, which would break the abstraction barrier. sigh.
My personal intuition suggests that most instances should be "strict in the leaves, lazy in the spine" like the
[]instance. However, most of them seem to be lazy all over the place.NB:
Data.Sequence.Seqactually needs itsunzipto be lazy in the leaves in order to be lazy in the spine. If it tried to be strict in the leaves but lazy in the spine, it would end up being strict in part of the spine, which would break the abstraction barrier. sigh.