Делать числовые функции экземпляром Num?

Я хочу иметь возможность составлять числовые функции в haskell, используя бинарные операторы. Так, например, с унарными числовыми функциями:

f*g

следует перевести на:

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

и аналогично для сложения. Заставить вашего собственного оператора сделать это довольно просто, но я бы очень хотел сделатьNum a => a -> a функционирует экземпляр Num, но я не уверен, как это сделать.

Я также хотел бы сделать этот универсальный arity, но это может быть слишком проблематично из-за того, как сложно выполнять универсальные функции arity в Haskell, так что может быть лучше определить отдельныеNum a => a -> a -> a, Num a => a -> a -> a -> aи т. д. ... экземпляров до некоторого достаточно большого числа.

Ответы на вопрос(2)

Ваш ответ на вопрос