module Data.List.Primes where import Data.Map () primes :: [Integer] primes = sieve [2..] where sieve (p:xs) = p : sieve [ x | x <- xs, x `mod` p > 0 ]