PureScriptでマルチパラメータタイプクラスを使用することは妥当ですか?マルチパラメータタイプクラスで 'タイプクラスインスタンスが見つかりませんでした'
コンパイラは以下のタイプのクラス定義の不合理「は型クラスのインスタンスが見つかりませんでした」エラー(full outputを参照)を上昇させる。
class Transform model turn where
transform :: turn -> model -> model
delay :: Maybe turn -> Int
にエラーがないdelay
関数の定義から生じますタイプパラメータmodel
に依存します。上にリンクされたコンパイラ出力から明らかなように、不在モデルにはt0を代入します。
これを修正する適切な方法は何ですか?現在、私は以下のようにturn
の種類を変更することでこの問題を回避:FPスラックチャネルから
class Turnable model turn where
runTurn :: turn model -> model -> model
turnDelay :: Maybe (turn model) -> Int