Ejemplos de una mónada cuya parte de aplicación puede optimizarse mejor que la parte de mónada

En una discusión escuché queApplicative La interfaz de algunos analizadores se implementa de manera diferente, más eficiente que suMonad interfaz. La razón es que conApplicative conocemos todos los "efectos" de antemano, antes de que se ejecute todo el cálculo efectivo. Con las mónadas, los efectos pueden depender de los valores durante el cálculo, por lo que esta optimización no es posible.

Me gustaría ver algunos buenos ejemplos de esto. Puede ser un parser muy simple o una mónada diferente, eso no es importante. Lo importante es que elApplicative interfaz de tal mónada cumple con sureturn yap, pero usando elApplicative Produce un código más eficiente.

Actualizar: Solo para aclarar, aquí no me interesan los aplicativos que no pueden ser mónadas. La pregunta es sobre cosas que son ambas cosas.

Respuestas a la pregunta(3)

Su respuesta a la pregunta