primes = 2 : 3 : filter (f primes) [5, 7 ..]
  where f (p:ps) x = p * p > x || x `rem` p /= 0 && f ps x
primes = 2 : 3 : filter (f primes) [5, 7 ..]
  where f (p:ps) x = p * p > x || x `rem` p /= 0 && f ps x
primes = 2 : 3 : filter (f primes) [5, 7 ..]
  where f (p:ps) x = p * p > x || x `rem` p /= 0 && f ps x