Modularity and Dyads

Abstract We study modularity in denotational semantics. We define the notion of a dyad, generalising the notion of monad, and we define the notion of symmetric premonoidal dyad, generalising the notion of strong monad. We show how dyads give rise to semantic categories for modelling computational effects, generalising the Kleisli construction for a monad, and we show that symmetric premonoidal dyads give a symmetric premonoidal structure on the semantic category, allowing us to model contexts. We give an outline, supported by technical results, how this may be used to give a modular account of adding computational effects to the semantics of an idealised programming language.