Christoph Lüth
FB 3 - Mathematik und Informatik, Universität Bremen

Neil Ghani
Department of Mathematics and Computer Science,
University of Leicester

This paper argues that the core of modularity problems is an
understanding of how individual components of a large system interact
with each other, and that this interaction can be described by a
layer structure. We propose a uniform treatment of layers
based upon the concept of a monad. The combination of
different systems can be described by the coproduct of
monads.

Concretely, we give a construction of the coproduct of two monads
and show how the layer structure in the coproduct monad can be used to
analyse layer structures in three different application areas, namely
term rewriting, denotational semantics and functional programming.