Наблюдение за ленью в Хаскеле

Можно ли написать функцию на Haskell, которая зависит от того, вычисляются ли уже значения или являются thunks? Например. еслиlazyShow :: [Int] -> String показывает гром как? и рассчитанные значения обычно, в GHCi мы увидим

> let nats = [0..]

> lazyShow nats
0 : ?

> nats !! 5    
5

> lazyShow nats
0 : 1 : 2 : 3 : 4 : ? 

Ответы на вопрос(2)

Ваш ответ на вопрос