Gibt es eine Klasse "ApplicativeIO"?

9

Gibt es in Hackage irgendwo eine Typklasse analog zu MonadIO , aber für Applicative s, mit dem IO -Aktionen einfach auf " anwendbare Kompositionsstapel " basierend auf IO ?

Wenn eine solche Typklasse existiert, würde sie durch die Implementierung des Applicative-Monad-Vorschlags ? Umfasst der Vorschlag eine Lockerung der Constraint Monad für MonadIO ?

    
danidiaz 26.09.2014, 16:37
quelle

1 Antwort

4

Es gab eine diesbezügliche Diskussion über Haskell-Cafe vor einem Jahr. In den Reddit-Kommentaren gab ich ein Beispiel einer natürlichen Transformation ( g ) von IO zu einer anderen Monade, die ein anwendungsorientierter Funktor-Morphismus ist (dh die Gesetze erfüllt, die Gabriel Gonzalez erwähnt), ist aber kein Monadenmorphismus (er erfüllt nicht das zusätzliche Gesetz bezüglich >>= ). Selbst in einer Welt mit AMP sind also ApplicativeIO m und MonadIO m wirklich unterschiedliche Dinge, auch wenn m ein Monad ist!

In einer idealen Welt hätte man ein Setup wie folgt:

%Vor%

und magische Feen würden ApplicativeIO und MonadIO genau dann definieren, wenn die entsprechenden Gesetze erfüllt wurden.

    
Reid Barton 27.09.2014, 00:55
quelle