Haskell - Poner en mayúscula todas las letras de una lista [String] con toUpper

Tengo una lista [Cadena], la tarea es eliminar esos elementos de la lista, que tienen "q" o "p" y luego poner en mayúscula todas las letras de la lista con toUpper.

Lo que intenté todavía es como sigue:

delAndUpper :: [String] -> [String]
delAndUpper myList = filter (\x -> not('p' `elem` x || 'q' `elem` x)) myList

Elimina los elementos no deseados de la lista correctamente, sin embargo, no puedo aplicar a Upper en esta lista ya que el tipo de toUpper es Char.

Lo probé con el mapa y no funciona.

delAndUpper myList = map toUpper (filter (\x -> not('p' `elem` x || 'q' `elem` x)) myList)

Sé que toUpper en esta línea de código obtiene una lista como valor y, por lo tanto, no puede funcionar, pero sabe cómo bajar un nivel a la lista y aplicar el mapa a Upper.

Me podría ayudar.

¡Gracias por adelantado!

Saludos

Respuestas a la pregunta(3)

Su respuesta a la pregunta