unique :: [Integer] -> [Integer]
unique []   = []
unique (x:xs) | elem x xs   = (unique . filter (/= x)) xs
              | otherwise   = x : unique xs

-- This is a simpler to read version (albeit inefficient?)
unique :: [Integer] -> [Integer]
unique []   = []
unique (x:xs) | elem x xs   = unique xs
              | otherwise   = x : unique xs