Closed jvoigtlaender closed 1 year ago
The main reason for using a Monad is the idea of having a MonadIO
instance (i.e. being able to use liftIO
). But maybe this could be accomplished by just defining a transformer Monad as well (obviously not by using liftIO
but by using lift
).
A lot of usage of this package looks more applicative than monadic.
Would it make sense to outright use an
Applicative
interface, possibly along withApplicativeDo
?