To add on:<p>For example, monads don&#x27;t &quot;compose&quot; as nicely as applicatives. You can automatically compose two applicatives and have a guarantee the the result obeys the applicative laws. Like you say, for monads you would have to write your own monad transformer, and hopefully verify it is still a law abiding monad. You don&#x27;t have to write a transformer for applicatives.