たとえば、パラメータの1つが上位型(* -> *
)である多型を使用しているとします。上位キンダ型変数を使用して導出する
アークンや安全でない言語拡張を使用せずにこのようなタイプのインスタンスを派生させる一般的な方法はありますか?
私はコンテキストを指定することができるように、私はStandaloneDeriving
を有効にしようとした:
deriving instance Show (m Int) => Show (Tricky m)
しかし、GHCは、制約は、インスタンスヘッドよりも小さいことを特徴としない文句、とUndecidableInstances
の方向に私を指します。
要約すると:
1.を私は単純に、このアドバイスと一緒に行く、またはより良い方法はありますでしょうか?
2.このプロセスを簡単にするための提案はありますか?
「より高級な」インスタンスを派生させようとするのはどういうわけか間違っていますか? (例えば。Vector
、[]
、Set
)の代わりに、いくつかの具体的なタイプのインスタンスを導出する方が良いだろう