少なくとも1990年代後半にさかのぼると、制限されたモナドを友好的な方法でHaskellに統合することを望んでいる人々がいました。
たとえば、制限されたモナドがないと、、または確率分布から効率的なモナドを作成することはSet
できMap
ません。これは、他の誰かがこの問題に反抗した数年前のSOの質問です。
人々が思いついたさまざまな回避策があります。
考えられるすべての制限に対して新しい型クラスを作成します。
テンプレートHaskellの使用。
制約の種類の使用。
ただし、これらのアプローチはいずれも「標準的」ではないようです。2007年に、このブログ投稿でDon Stewartからのコメントを見つけました。彼は、インデックス付きタイプのモナドを制限することに「非常に近い」とほのめかしました。
現在の状況は?制限されたモナドを実行するための「標準的な」方法はありますか?それとも、私たちはまだ回避策を持って生きていますか?