Разумно ли иметь классы многопараметрических типов в PureScript?
Компилятор выдает необоснованную ошибку «Не найден экземпляр класса типа» (см. полный вывод). приведенное ниже определение класса типа:
class Transform model turn where
transform :: turn -> model -> model
delay :: Maybe turn -> Int
Ошибка возникает из-за определения функции delay
, которая не зависит от параметра типа model
. Как видно из выходных данных компилятора, приведенных выше, он заменяет отсутствующую модель на t0.
Как правильно это исправить? В настоящее время я решил эту проблему, изменив тип turn
, как показано ниже:
class Turnable model turn where
runTurn :: turn model -> model -> model
turnDelay :: Maybe (turn model) -> Int