Here are the recursive list examples we saw in the lecture.
allInts = 1 : [ i + 1 | i <- allInts ]
fibs = 1 : 1 : [ i + j | (i, j) <- fibs `zip` (tail fibs) ]
primes = sieve [2 ..] where sieve (p : ns) = p : sieve [i | i <- ns, i `mod` p /= 0]