のドキュメントを見ると、Control.Applicative特定のモナド(たとえばIO、Maybe特に)のインスタンス宣言がありますが、やSTなどのMTLモナドのインスタンスはありません。代わりに、汎用タイプが定義されているように見えます。これは、他のすべてのケースをカバーするためだと思います。StateRWSWrappedMonad
だからここに私の質問があります:
ApplicativeMTLモナドのインスタンスがないのはなぜですか?私がこれまでに自分で見つけた最良の答えは、3年前の投稿で、誰かがこれらのインスタンスを実装し、すぐに無視されました。どうしたの
WrappedMonad?Redditに簡単に説明している投稿を見つけましたが、使い方がわからないと思います。
最終的には、(私が推奨したようにState)アプリケーションスタイルで使用できるようにしたいと思いますが、コードにデータコンストラクターを散らかす必要がある場合、それは成功とは思えません。また、完全に無視して、インスタンスを自分で定義することもできます。たとえば、などの場合と同じように、インスタンスを定義します。WrappedMonadWrappedMonadApplicativeIOSTreturnap