Kleisli categories over monads have been used in denotational semantics to describe functional languages using various notions of computations as values. Kleisli categories over comonads have also been used to describe intensional semantics rather than extensional. This paper explores the possibilities of combining monads and comonads to obtain an intensional semantics using computations as values. We give three alternative ways to combine the two and explore which apply to known monads and comonads of interest. We will also look at various intensional semantics for an example programming language that uses monads for computations and compare them to the original extensional semantics.
Brookes and Stone REF used monad and comonads for describing respectively the extensional and intensional semantics for a language with computational effects.
Monads and Comonads in Intensional Semantics
Mathematics