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