Carregando funções assinaturas haskell

Recebo a seguinte mensagem de erro ao compilar:

Assinatura de tipo duplicado:
weightedMedian.hs: 71: 0-39: findVal :: [ValPair] -> Duplo -> Duplo
weightedMedian.hs: 68: 0-36: findVal :: [ValPair] -> Int -> Duplo

minha solução é ter findValI e findValD. No entanto, findValI apenas converte o tipo Int em Double e chama findValD.

Também não consigo correspondência de padrões nos tipos de Num (Int, Double), então não posso simplesmente alterar a assinatura do tipo para

findVal :: [ValPair] -> Num -> Double   

Em muitos idiomas, eu não precisaria de nomes diferentes. Por que preciso de nomes diferentes no Haskell? Isso seria difícil de adicionar ao idioma? Ou existem dragões lá?

questionAnswers(5)

yourAnswerToTheQuestion