A few days ago, the Computerphile YouTube channel put up a video about infinite lists in Haskell (Haran 2018). It’s pretty basic, but finishes up with a definition of an infinite list of prime numbers. The definition was something like this: primes = sieve [2..] sieve (p:ps) = p : sieve [ x | x <- ps, mod x p /= 0 ] This really demonstrates the elegance of list comprehensions coupled with lazy eva