sieve :: Int -> [Int] sieve n = helper False:(duplicate (n - 1) True) where helper l = let prime = findFirstTrue l in if prime > 0 then prime:(helper (clearMultiples prime l)) else [] {- Error in hugs is: ERROR "test.hs":60 - Syntax error in expression (unexpected `}', possibly due to bad layout) -}