rationals :: [Rational] rationals = iterate next 1 next x = recip (fromInteger n + 1 - y) where (n, y) = properFraction x main = print (take 10 rationals)