Zurückgehend auf mindestens Ende der 1990er Jahre gab es Leute, die die Integration von restricted monads in Haskell auf freundliche Art und Weise wünschten.Wie ist der aktuelle Status von eingeschränkten Monaden?
Zum Beispiel ohne eingeschränkte Monaden können Sie nicht eine effiziente Monade machen aus Set
, Map
oder probability distributions. Hier ist ein SO question von vor ein paar Jahren, wo jemand anderes mit diesem Problem in Konflikt geraten ist.
Es gibt verschiedene Abhilfen, dass die Menschen gekommen sind, mit, einschließlich:
eine new type class für jede mögliche Einschränkung erstellen.
Mit Template Haskell.
Mit Constraint Kinds.
Keiner dieser Ansätze scheint jedoch "kanonisch" zu sein. Ich fand 2007 einen Kommentar von Don Stewart über this blog post, in dem er anmerkte, dass wir "sehr nahe" daran waren, Monaden mit einzuschränken.
Was ist der aktuelle Stand? Gibt es jetzt eine "kanonische" Möglichkeit, eingeschränkte Monaden zu machen? Oder wir leben immer noch mit Workarounds?
Ich denke, würde mit Zwang Arten es als kanonisch ist, wie es erhält, sie sind nur ein bisschen zu neu für sie noch die meisten _common_ Lösung. – leftaroundabout