Для
appearsOnlyOnce :: String -> Bool
неэффективный (квадратичный) способ сделать это -
appearsOnlyOnce [] = True
appearsOnlyOnce (x:xs)
| x `elem` xs = False
| otherwise = appearsOnlyOnce xs
Более эффективным, но более сложным способом будет сортировка и проверка соседних элементов. .