¿Por qué el rendimiento mutuo hace que ArrowApply y Monads sean equivalentes, a diferencia de Arrow y Applicative?

Aquí está la publicación SO a la que me referiré . Además, voy a usar los mismos fragmentos que el OP en esa pregunta para no separar los materiales . Es ampliamente conocido que una ArrowApplyinstancia produce una mónada y viceversa: newtype ArrowMonad a b = ArrowMonad (a () b) instance Arrow a...