¿Hay algún tipo que incluya cadenas y listas en haskell?

¿Hay algún tipo que incluya cadenas y listas en haskell?

En este momento estoy intentando crear una función básica que elimine espacios o comas de una oración.

stringToIntList :: [Char] -> [Char]
stringToIntList inpt = [ a | a <- inpt, a `elem` [" ",","]]

El problema que estoy experimentando es que cada tipo que he probado no funciona, si pongo [Char] se asusta con las comas, si pongo [string] se asusta con los espacios, y si pongo cadena simplemente no reconoce a y dice que es un error. así que me preguntaba si había algún tipo que pudiera funcionar tanto como [Char] como [string].

Mostrar la mejor respuesta

Con el tipo actual, la definición debe ser

stringToIntList inpt = [ a | a <- inpt, a `elem` [' ',',']]

(comillas simples, porque son literales Char, ¡no String!),
o alternativamente

stringToIntList inpt = [ a | a <- inpt, a `elem` " ,"]

(usando el hecho de que una cadena es solo una lista de caracteres),
o simplemente

stringToIntList = filter (`elem` " ,")

Tenga en cuenta que esto no elimina los espacios y las comas, por el contrario, esos son los únicos caracteres que mantiene. Para eliminarlos en su lugar, debe invertir el predicado:

stringToIntList = filter $ not . (`elem` " ,")

Como comenta Iceland_jack, en realidad hay una función estándar para esta combinación:

stringToIntList = filter (`notElem` " ,")

Si realmente quisieras a `elem` [" ",","] entonces el tipo de tu función tendría que ser

stringToIntList :: [String] -> [String]

o equivalente [[Char]] -> [[Char]].

hay una función notElem = not . elem, sería bueno tener keep = filter y drop = (>>> not) >>> filter si no se tomó ese nombre