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.