Simplest nicht-triviales Monadentransformator-Beispiel für "Dummies", IO + Maybe

Kann jemand ein supereinfaches (paar Zeilen) Beispiel für einen Monadentransformator geben, das nicht trivial ist (d. H. Die Identitätsmonade nicht verwendet - das verstehe ich).

Wie würde zum Beispiel jemand eine Monade erstellen, die IO ausführt und mit Fehlern umgehen kann (Vielleicht)?

Was wäre das einfachste Beispiel, das dies demonstrieren würde?

Ich habe ein paar Tutorials zu Monadentransformatoren durchgesehen und sie scheinen alle State Monad oder Parser oder etwas Kompliziertes (für Neulinge) zu verwenden. Ich würde gerne etwas Einfacheres sehen. Ich denke, IO + wäre vielleicht einfach, aber ich weiß nicht wirklich, wie ich das selbst machen soll.

Wie könnte ich einen IO + Vielleicht Monad Stack verwenden? Was wäre oben? Was wäre unten? Warum

In welcher Art von Anwendungsfall würde man die E / A + Vielleicht Monade oder die E / A + Vielleicht Monade verwenden wollen? Wäre es sinnvoll, überhaupt eine solche zusammengesetzte Monade zu schaffen? Wenn ja, wann und warum?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage