Говорят, что функция Haskell seq вынуждает вычислить свой первый аргумент и возвращает второй.Он используется для добавления строгости в оценку выражений.Итак, как следующее может просто вернуть 5:
seq [1..] 5
Разве это не должно застрять при попытке создать бесконечный список?