Notions of Computation as Monoids http://arxiv.org/abs/1406.4823 面白かった。 モナドが自己関手のモノイド圏のモノイドであるのは有名だけれど、Arrowはprofunctorのモノイド圏のモノイドだし、Applicativeも自己関手の圏を Day Convolution という演算でモノイド圏にしたときの、モノイドになっていると。

さらに、自由モノイドの構成や、任意のモノイドMをM上の自己関数と関数合成のモノイドに埋め込めるというCayleyの表現定理などが、これらのモノイド圏上のモノイドに対しても適用できる。 前者から自由Applicativeや自由Arrowなども考えることができる。 また、差分リストは集合圏上のモノイドに関するCayleyの表現定理の具体例とみなせるし、同じ考え方を自己関手のモノイド圏上のモノイド(つまりモナド)に適用すると、Voigtländerのモナディックな計算の最適化に対応する(M上の自己関数がCodensityモナドに対応)。

あと、恥ずかしながら、これまでendやcoendについて、定義は理解できるものの、ちょっと苦手意識があったのだけれど、これ読んでて、だいぶ感覚が分かって苦手意識がなくなった。

紹介してくれた xuwei_k さんに感謝。
https://twitter.com/xuwei_k/status/628154817219723265