action monad




Higher algebra

Representation theory



The action monad or writer monad is a construction generalizing many seemingly different concepts across mathematics and computer science. It could be intuitively understood in the following ways. First of all, fix a group or monoid MM.

If one, more generally, replaces sets and a monoid with a monoidal category and an internal monoid, a similar construction can be given. This generalizes, for example, the action that rings have on their modules, and that Lie groups have on manifolds.


In the category of sets

Let MM be a monoid with unit e:1Me:1\to M and multiplication :M×MM\cdot:M\times M \to M. The (left) MM-action monad is a monad on Set where

  • The endofunctor maps a set XX to the set M×XM\times X;

  • The unit is given by

for each object XX;

  • The multiplication is given by

for each object XX.

The monad axioms follow from the monoid axioms for MM.

There exists an analogous monad for right actions, whose endofunctor maps XX to X×MX\times M.

In a general monoidal category

More generally, let (C,,1)(C,\otimes,1) be a monoidal category. Let MM be a monoid object in CC with unit e:1Me:1\to M and multiplication :MMM\cdot:M\otimes M \to M. The (left) MM-action monad is a monad on CC where

  • The endofunctor maps an object XX of CC to the object MXM\otimes X;

  • The unit is given by

for each object XX;

  • The multiplication is given by

for each object XX.

Again, the monad axioms follow from the monoid axioms for MM. (And again there is an analogous notion for right actions).


The algebras over the action monad for a monoid (or group) MM can be seen as the M M -spaces, i.e. sets or spaces equipped with an action of MM (hence the name).

Plugging in the definition, an algebra over this monad is then a set AA together with a map e:M×AAe:M\times A\to A, such that the following diagrams commute. The algebra diagrams

say equivalently that for all aAa\in A and m,nMm,n\in M,

1a=a,(mn)a=m(na). 1\cdot a= a, \qquad (m n)\cdot a = m\cdot (n\cdot a) .

In other words, a T MT_M-algebra is exactly a set equipped with an MM-action in the traditional group-theoretical sense.

This gives a way to talk about monoid and group actions internally to any monoidal category, giving the notion of a module object.



In computer science

The action monad in computer science is known under the name of writer monad. See also writer comonad.

A way to motivate this name is to look at its Kleisli morphisms. The following explanation is taken from Perrone, Example 5.1.14.

Let MM be a monoid, and let’s write it additively. Denote by T MT_M its right writer monad. A Kleisli morphism of T MT_M is a map k:XY×Mk:X\to Y\times M. We can interpret it as a process which, when given an input xXx\in X, does not just produce an output yYy\in Y, but also an element of MM. For example, it could be energy released by a chemical reaction, or waste, or a cost of the transaction. In computer science, this is the behaviour of a function that computes a certain value, but that also writes into a log file (or to the standard output) that something has happened (the monoid operation being the concatenation of strings). For example, when you compile a tex document, a log file is produced alongside your output file. Hence the name “writer monad”.

Let’s now look at the Kleisli composition. If we have processes k:XY×Mk:X\to Y\times M and h:YZ×Mh:Y\to Z\times M, then k klY:XZ×Mk\circ_{kl} Y:X\to Z\times M is given by

What it does is as follows:

  1. It executes the process kk with an input xXx\in X, giving as output an element of yYy\in Y as well as a cost (or extra output) mMm\in M.
  2. It executes the process kk taking as input the yYy\in Y produced by kk, giving an element zZz\in Z as well as an extra cost nMn\in M. (All of this while keeping track of the first cost mm.)
  3. The two costs mm and nn are summed (or the extra outputs are concatenated).

So, for example, the cost of executing two processes one after another is the sum of the costs. The same is true about the release of energy in a chemical reaction, and about waste. Just as well, executing two programs one after another will produce a concatenation of text in a log file (or two log files).


  • Gavin J. Seal, Tensors, monads and actions (arXiv:1205.0101)

  • Martin Brandenburg, Tensor categorical foundations of algebraic geometry (arXiv:1410.1716)

  • Paolo Perrone, Notes on Category Theory with examples from basic mathematics, Chapter 5. (arXiv)

Last revised on March 12, 2021 at 23:35:47. See the history of this page for a list of all contributions to it.