3
MonadReaderを定義するためにFunctionalDependencyが必要なのはなぜですか?
クラスの定義を理解できた MonadReader class Monad m => MonadReader r m | m -> r where ... Haskellの関数型依存関係のドキュメントを読んだ後| m -> r、型変数rがによって一意に決定されることを指定していることが理解できますm。これまでに見たMonadReaderのいくつかの典型的なインスタンス(例:)に基づいて、この要件は妥当だと思いますがReader、Readerこの機能的な依存関係句がなくてもインスタンスを定義できるように思えます。 私の質問は、MonadReaderの定義に機能的な依存関係が必要な理由です。これは、MonadReaderを適切に定義できないという意味で、MonadReaderを定義するために機能的に必要ですか?