Transformando funções numéricas em uma instância de Num?

Eu quero ser capaz de compor funções numéricas em haskell usando operadores binários. Então, por exemplo, com funções numéricas unárias:

f*g

deve traduzir para:

\x -> (f x)*(g x)

e da mesma forma para adição. Criar seu próprio operador para fazer isso é bastante simples, mas eu realmente gostaria deNum a => a -> a funciona uma instância de Num, mas não sei como fazê-lo.

Eu também gostaria de tornar essa aridade genérica, mas isso pode causar muitos problemas, já que é difícil executar funções genéricas da aridade em Haskell, portanto, talvez seja melhor definir separadamenteNum a => a -> a -> a, Num a => a -> a -> a -> a, etc ... instâncias até um número razoavelmente grande.

questionAnswers(2)

yourAnswerToTheQuestion