Определение типа данных, который не хочет быть defined

У меня есть тип данных Многочлен r для многочленов в Haskell и экземпляр Ring для него. ( класс Ring r, где plus :: r -> r -> r; times :: r -> r -> r; отрицательный :: r -> r; zero :: r; one :: r - это просто упрощенная версия Num).

Теперь я мог бы определить многочлен, например gauss = x ^ 2 + 1 или eisenstein = x ^ 2 + x + 1 , а затем работать в " и если их два, они должны быть одинаковыми.)

Есть ли какой-нибудь безопасный по типу (я имею в виду не использование небезопасных функций) способ запрограммировать это в haskell? Я довольно озадачен. Спасибо!

7
задан quanta 6 January 2011 в 07:42
поделиться