Usando uma lista filtrada em uma nova função no haskell

Portanto, não tenho muita certeza de como expressar isso corretamente, mas digamos que deseje obter a soma de todos os números ímpares de uma lista, tenho duas funções (sumList e getOddNumbers) e as combine em sumOddList ou existe uma maneira de colocar esses dois juntos em uma única função? Se não houver uma função melhor, como exatamente eu as combinaria em sumOddList?

getOddNumbers :: [Integer] -> [Integer]
getOddNumbers [] = []
getOddNumbers (x:xs)
    |odd x = x:getOddNumbers xs
    |otherwise = getOddNumbers xs

sumList :: [Integer] -> Integer
sumList list = case list of
   [] -> 0
   (x:xs) -> x + (sumList xs)

Também pergunto principalmente porque juntar duas funções diff é algo com o qual lutei antes, ao colocar uma cor e uma forma usando o CodeWorld para produzir uma forma dessa cor.

Obrigado

(Nota: estou usando Haskell há pouco mais de 5 semanas e sou um noob total claramente)

questionAnswers(3)

yourAnswerToTheQuestion