  There are different notions of computation, the most popular being monads,
applicative functors, and arrows. In this article we show that these three
notions can be seen as monoids in a monoidal category. We demonstrate that at
this level of abstraction one can obtain useful results which can be
instantiated to the different notions of computation. In particular, we show
how free constructions and Cayley representations for monoids translate into
useful constructions for monads, applicative functors, and arrows. Moreover,
the uniform presentation of all three notions helps in the analysis of the
relation between them.
