Challenge 1: An Infinite List of Even Numbers — Possible Solution ==================================================================== Main.hs: evens :: [Integer] evens = [0, 2 ..] -- a generator-based infinite list, stepping by 2 main :: IO () main = print (take 8 evens) Output: [0,2,4,6,8,10,12,14] Explanation: [0, 2 ..] is Haskell's arithmetic sequence syntax -- giving the first two elements (0 and 2) tells the runtime the step size (2), and the missing upper bound makes it genuinely infinite, exactly like haskell1-1's own [1..] example. Nothing about writing this definition computes any values at all; take 8 is what actually demands the first eight elements, and only those eight are ever computed. An equally valid self-referential alternative: evens :: [Integer] evens = 0 : map (+2) evens This defines evens in terms of itself, the same style as the chapter's own fibs example -- each element is the previous one plus 2, computed lazily one at a time as take demands them. WHY THIS WORKS AS AN ANSWER ------------------------------ This defines a genuinely infinite list (both via arithmetic sequence syntax and, as an alternative, via self-reference matching the chapter's own fibs pattern) and safely inspects only a finite prefix of it with take, exactly the safe-peek pattern the chapter's own tip-box recommends.