\documentclass[12pt,titlepage]{article} \usepackage{amsmath} \usepackage{mathrsfs} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsthm} \usepackage{mathtools} \usepackage{graphicx} \usepackage{color} \usepackage{ucs} \usepackage[utf8x]{inputenc} \usepackage{xparse} \usepackage{hyperref} %----Macros---------- % % Unresolved issues: % % \righttoleftarrow % \lefttorightarrow % % \color{} with HTML colorspec % \bgcolor % \array with options (without options, it's equivalent to the matrix environment) % Of the standard HTML named colors, white, black, red, green, blue and yellow % are predefined in the color package. Here are the rest. \definecolor{aqua}{rgb}{0, 1.0, 1.0} \definecolor{fuschia}{rgb}{1.0, 0, 1.0} \definecolor{gray}{rgb}{0.502, 0.502, 0.502} \definecolor{lime}{rgb}{0, 1.0, 0} \definecolor{maroon}{rgb}{0.502, 0, 0} \definecolor{navy}{rgb}{0, 0, 0.502} \definecolor{olive}{rgb}{0.502, 0.502, 0} \definecolor{purple}{rgb}{0.502, 0, 0.502} \definecolor{silver}{rgb}{0.753, 0.753, 0.753} \definecolor{teal}{rgb}{0, 0.502, 0.502} % Because of conflicts, \space and \mathop are converted to % \itexspace and \operatorname during preprocessing. % itex: \space{ht}{dp}{wd} % % Height and baseline depth measurements are in units of tenths of an ex while % the width is measured in tenths of an em. \makeatletter \newdimen\itex@wd% \newdimen\itex@dp% \newdimen\itex@thd% \def\itexspace#1#2#3{\itex@wd=#3em% \itex@wd=0.1\itex@wd% \itex@dp=#2ex% \itex@dp=0.1\itex@dp% \itex@thd=#1ex% \itex@thd=0.1\itex@thd% \advance\itex@thd\the\itex@dp% \makebox[\the\itex@wd]{\rule[-\the\itex@dp]{0cm}{\the\itex@thd}}} \makeatother % \tensor and \multiscript \makeatletter \newif\if@sup \newtoks\@sups \def\append@sup#1{\edef\act{\noexpand\@sups={\the\@sups #1}}\act}% \def\reset@sup{\@supfalse\@sups={}}% \def\mk@scripts#1#2{\if #2/ \if@sup ^{\the\@sups}\fi \else% \ifx #1_ \if@sup ^{\the\@sups}\reset@sup \fi {}_{#2}% \else \append@sup#2 \@suptrue \fi% \expandafter\mk@scripts\fi} \def\tensor#1#2{\reset@sup#1\mk@scripts#2_/} \def\multiscripts#1#2#3{\reset@sup{}\mk@scripts#1_/#2% \reset@sup\mk@scripts#3_/} \makeatother % \slash \makeatletter \newbox\slashbox \setbox\slashbox=\hbox{$/$} \def\itex@pslash#1{\setbox\@tempboxa=\hbox{$#1$} \@tempdima=0.5\wd\slashbox \advance\@tempdima 0.5\wd\@tempboxa \copy\slashbox \kern-\@tempdima \box\@tempboxa} \def\slash{\protect\itex@pslash} \makeatother % math-mode versions of \rlap, etc % from Alexander Perlis, "A complement to \smash, \llap, and lap" % http://math.arizona.edu/~aprl/publications/mathclap/ \def\clap#1{\hbox to 0pt{\hss#1\hss}} \def\mathllap{\mathpalette\mathllapinternal} \def\mathrlap{\mathpalette\mathrlapinternal} \def\mathclap{\mathpalette\mathclapinternal} \def\mathllapinternal#1#2{\llap{$\mathsurround=0pt#1{#2}$}} \def\mathrlapinternal#1#2{\rlap{$\mathsurround=0pt#1{#2}$}} \def\mathclapinternal#1#2{\clap{$\mathsurround=0pt#1{#2}$}} % Renames \sqrt as \oldsqrt and redefine root to result in \sqrt[#1]{#2} \let\oldroot\root \def\root#1#2{\oldroot #1 \of{#2}} \renewcommand{\sqrt}[2][]{\oldroot #1 \of{#2}} % Manually declare the txfonts symbolsC font \DeclareSymbolFont{symbolsC}{U}{txsyc}{m}{n} \SetSymbolFont{symbolsC}{bold}{U}{txsyc}{bx}{n} \DeclareFontSubstitution{U}{txsyc}{m}{n} % Manually declare the stmaryrd font \DeclareSymbolFont{stmry}{U}{stmry}{m}{n} \SetSymbolFont{stmry}{bold}{U}{stmry}{b}{n} % Manually declare the MnSymbolE font \DeclareFontFamily{OMX}{MnSymbolE}{} \DeclareSymbolFont{mnomx}{OMX}{MnSymbolE}{m}{n} \SetSymbolFont{mnomx}{bold}{OMX}{MnSymbolE}{b}{n} \DeclareFontShape{OMX}{MnSymbolE}{m}{n}{ <-6> MnSymbolE5 <6-7> MnSymbolE6 <7-8> MnSymbolE7 <8-9> MnSymbolE8 <9-10> MnSymbolE9 <10-12> MnSymbolE10 <12-> MnSymbolE12}{} % Declare specific arrows from txfonts without loading the full package \makeatletter \def\re@DeclareMathSymbol#1#2#3#4{% \let#1=\undefined \DeclareMathSymbol{#1}{#2}{#3}{#4}} \re@DeclareMathSymbol{\neArrow}{\mathrel}{symbolsC}{116} \re@DeclareMathSymbol{\neArr}{\mathrel}{symbolsC}{116} \re@DeclareMathSymbol{\seArrow}{\mathrel}{symbolsC}{117} \re@DeclareMathSymbol{\seArr}{\mathrel}{symbolsC}{117} \re@DeclareMathSymbol{\nwArrow}{\mathrel}{symbolsC}{118} \re@DeclareMathSymbol{\nwArr}{\mathrel}{symbolsC}{118} \re@DeclareMathSymbol{\swArrow}{\mathrel}{symbolsC}{119} \re@DeclareMathSymbol{\swArr}{\mathrel}{symbolsC}{119} \re@DeclareMathSymbol{\nequiv}{\mathrel}{symbolsC}{46} \re@DeclareMathSymbol{\Perp}{\mathrel}{symbolsC}{121} \re@DeclareMathSymbol{\Vbar}{\mathrel}{symbolsC}{121} \re@DeclareMathSymbol{\sslash}{\mathrel}{stmry}{12} \re@DeclareMathSymbol{\bigsqcap}{\mathop}{stmry}{"64} \re@DeclareMathSymbol{\biginterleave}{\mathop}{stmry}{"6} \re@DeclareMathSymbol{\invamp}{\mathrel}{symbolsC}{77} \re@DeclareMathSymbol{\parr}{\mathrel}{symbolsC}{77} \makeatother % \llangle, \rrangle, \lmoustache and \rmoustache from MnSymbolE \makeatletter \def\Decl@Mn@Delim#1#2#3#4{% \if\relax\noexpand#1% \let#1\undefined \fi \DeclareMathDelimiter{#1}{#2}{#3}{#4}{#3}{#4}} \def\Decl@Mn@Open#1#2#3{\Decl@Mn@Delim{#1}{\mathopen}{#2}{#3}} \def\Decl@Mn@Close#1#2#3{\Decl@Mn@Delim{#1}{\mathclose}{#2}{#3}} \Decl@Mn@Open{\llangle}{mnomx}{'164} \Decl@Mn@Close{\rrangle}{mnomx}{'171} \Decl@Mn@Open{\lmoustache}{mnomx}{'245} \Decl@Mn@Close{\rmoustache}{mnomx}{'244} \makeatother % Widecheck \makeatletter \DeclareRobustCommand\widecheck[1]{{\mathpalette\@widecheck{#1}}} \def\@widecheck#1#2{% \setbox\z@\hbox{\m@th$#1#2$}% \setbox\tw@\hbox{\m@th$#1% \widehat{% \vrule\@width\z@\@height\ht\z@ \vrule\@height\z@\@width\wd\z@}$}% \dp\tw@-\ht\z@ \@tempdima\ht\z@ \advance\@tempdima2\ht\tw@ \divide\@tempdima\thr@@ \setbox\tw@\hbox{% \raise\@tempdima\hbox{\scalebox{1}[-1]{\lower\@tempdima\box \tw@}}}% {\ooalign{\box\tw@ \cr \box\z@}}} \makeatother % \mathraisebox{voffset}[height][depth]{something} \makeatletter \NewDocumentCommand\mathraisebox{moom}{% \IfNoValueTF{#2}{\def\@temp##1##2{\raisebox{#1}{$\m@th##1##2$}}}{% \IfNoValueTF{#3}{\def\@temp##1##2{\raisebox{#1}[#2]{$\m@th##1##2$}}% }{\def\@temp##1##2{\raisebox{#1}[#2][#3]{$\m@th##1##2$}}}}% \mathpalette\@temp{#4}} \makeatletter % udots (taken from yhmath) \makeatletter \def\udots{\mathinner{\mkern2mu\raise\p@\hbox{.} \mkern2mu\raise4\p@\hbox{.}\mkern1mu \raise7\p@\vbox{\kern7\p@\hbox{.}}\mkern1mu}} \makeatother %% Fix array \newcommand{\itexarray}[1]{\begin{matrix}#1\end{matrix}} %% \itexnum is a noop \newcommand{\itexnum}[1]{#1} %% Renaming existing commands \newcommand{\underoverset}[3]{\underset{#1}{\overset{#2}{#3}}} \newcommand{\widevec}{\overrightarrow} \newcommand{\darr}{\downarrow} \newcommand{\nearr}{\nearrow} \newcommand{\nwarr}{\nwarrow} \newcommand{\searr}{\searrow} \newcommand{\swarr}{\swarrow} \newcommand{\curvearrowbotright}{\curvearrowright} \newcommand{\uparr}{\uparrow} \newcommand{\downuparrow}{\updownarrow} \newcommand{\duparr}{\updownarrow} \newcommand{\updarr}{\updownarrow} \newcommand{\gt}{>} \newcommand{\lt}{<} \newcommand{\map}{\mapsto} \newcommand{\embedsin}{\hookrightarrow} \newcommand{\Alpha}{A} \newcommand{\Beta}{B} \newcommand{\Zeta}{Z} \newcommand{\Eta}{H} \newcommand{\Iota}{I} \newcommand{\Kappa}{K} \newcommand{\Mu}{M} \newcommand{\Nu}{N} \newcommand{\Rho}{P} \newcommand{\Tau}{T} \newcommand{\Upsi}{\Upsilon} \newcommand{\omicron}{o} \newcommand{\lang}{\langle} \newcommand{\rang}{\rangle} \newcommand{\Union}{\bigcup} \newcommand{\Intersection}{\bigcap} \newcommand{\Oplus}{\bigoplus} \newcommand{\Otimes}{\bigotimes} \newcommand{\Wedge}{\bigwedge} \newcommand{\Vee}{\bigvee} \newcommand{\coproduct}{\coprod} \newcommand{\product}{\prod} \newcommand{\closure}{\overline} \newcommand{\integral}{\int} \newcommand{\doubleintegral}{\iint} \newcommand{\tripleintegral}{\iiint} \newcommand{\quadrupleintegral}{\iiiint} \newcommand{\conint}{\oint} \newcommand{\contourintegral}{\oint} \newcommand{\infinity}{\infty} \newcommand{\bottom}{\bot} \newcommand{\minusb}{\boxminus} \newcommand{\plusb}{\boxplus} \newcommand{\timesb}{\boxtimes} \newcommand{\intersection}{\cap} \newcommand{\union}{\cup} \newcommand{\Del}{\nabla} \newcommand{\odash}{\circleddash} \newcommand{\negspace}{\!} \newcommand{\widebar}{\overline} \newcommand{\textsize}{\normalsize} \renewcommand{\scriptsize}{\scriptstyle} \newcommand{\scriptscriptsize}{\scriptscriptstyle} \newcommand{\mathfr}{\mathfrak} \newcommand{\statusline}[2]{#2} \newcommand{\tooltip}[2]{#2} \newcommand{\toggle}[2]{#2} % Theorem Environments \theoremstyle{plain} \newtheorem{theorem}{Theorem} \newtheorem{lemma}{Lemma} \newtheorem{prop}{Proposition} \newtheorem{cor}{Corollary} \newtheorem*{utheorem}{Theorem} \newtheorem*{ulemma}{Lemma} \newtheorem*{uprop}{Proposition} \newtheorem*{ucor}{Corollary} \theoremstyle{definition} \newtheorem{defn}{Definition} \newtheorem{example}{Example} \newtheorem*{udefn}{Definition} \newtheorem*{uexample}{Example} \theoremstyle{remark} \newtheorem{remark}{Remark} \newtheorem{note}{Note} \newtheorem*{uremark}{Remark} \newtheorem*{unote}{Note} %------------------------------------------------------------------- \begin{document} %------------------------------------------------------------------- \section*{module over a monad} \hypertarget{context}{}\subsubsection*{{Context}}\label{context} \hypertarget{2category_theory}{}\paragraph*{{2-Category theory}}\label{2category_theory} [[!include 2-category theory - contents]] \hypertarget{higher_algebra}{}\paragraph*{{Higher algebra}}\label{higher_algebra} [[!include higher algebra - contents]] \hypertarget{contents}{}\section*{{Contents}}\label{contents} \noindent\hyperlink{idea}{Idea}\dotfill \pageref*{idea} \linebreak \noindent\hyperlink{definition}{Definition}\dotfill \pageref*{definition} \linebreak \noindent\hyperlink{modules}{Modules}\dotfill \pageref*{modules} \linebreak \noindent\hyperlink{bimodules}{Bimodules}\dotfill \pageref*{bimodules} \linebreak \noindent\hyperlink{AlgebrasForMonadsInCat}{Algebras for monads in Cat}\dotfill \pageref*{AlgebrasForMonadsInCat} \linebreak \noindent\hyperlink{properties}{Properties}\dotfill \pageref*{properties} \linebreak \noindent\hyperlink{colimits}{Colimits}\dotfill \pageref*{colimits} \linebreak \noindent\hyperlink{tensor_product}{Tensor product}\dotfill \pageref*{tensor_product} \linebreak \noindent\hyperlink{examples}{Examples}\dotfill \pageref*{examples} \linebreak \noindent\hyperlink{related_concepts}{Related concepts}\dotfill \pageref*{related_concepts} \linebreak \noindent\hyperlink{references}{References}\dotfill \pageref*{references} \linebreak \hypertarget{idea}{}\subsection*{{Idea}}\label{idea} Just as the notion of a [[monad]] in a [[bicategory]] $K$ generalizes that of a [[monoid in a monoidal category]], [[module over a monoid|modules over monoids]] generalize easily to modules over monads. Beware that modules over monads in [[Cat]] are often called \emph{algebras} for the monad, since they literally are algebras in the sense of [[universal algebra]], see \hyperlink{AlgebrasForMonadsInCat}{below}. By extension, one might speak of modules over monads in any [[2-category]] as ``algebras for the monad''. The [[formal dual|formally dual]] concept is that of \emph{[[coalgebra over a comonad]]}. \hypertarget{definition}{}\subsection*{{Definition}}\label{definition} \hypertarget{modules}{}\subsubsection*{{Modules}}\label{modules} Let $K$ be a [[bicategory]] and $t \colon a \to a$ a [[monad]] in $K$ with structure 2-cells $\mu \colon t t \Rightarrow t$ and $\eta \colon 1_a \Rightarrow t$. Then a \textbf{left $t$-module} is given by a 1-cell $x \colon b \to a$ and a 2-cell $\lambda \colon t x \Rightarrow x$, where \begin{displaymath} \itexarray{ t t x & \overset{\mu x}{\to} & t x \\ t\lambda\downarrow & & \downarrow \lambda \\ t x & \underset{\lambda}{\to} & x } \qquad \qquad \itexarray{ x & \overset{\eta x}{\to} & t x \\ & 1\searrow & \downarrow \lambda \\ & & x } \end{displaymath} commute. Similarly, a \textbf{right $t$-module} is given by a 1-cell $y \colon a \to c$ and a 2-cell $\rho \colon y t \Rightarrow y$, with commuting diagrams as above with $y$ on the left instead of $x$ on the right. Clearly, a right $t$-module in $K$ is the same thing as a left $t$-module in $K^{\mathrm{op}}$. A \textbf{left $t$-comodule} or \textbf{coalgebra} is then a left $t$-module in $K^{\mathrm{co}}$, and a \textbf{right $t$-comodule} is a left $t$-module in $K^{\mathrm{coop}}$. A $t$-module of any of these sorts is \emph{a fortiori} an [[algebra over an endomorphism|algebra over the underlying endomorphism]] $t$. \hypertarget{bimodules}{}\subsubsection*{{Bimodules}}\label{bimodules} Given monads $s$ on $b$ and $t$ on $a$, an \textbf{$s,t$-bimodule} is given by a 1-cell $x\colon b \to a$, together with the structures of a right $s$-module $\rho \colon x s \Rightarrow x$ and a left $t$-module $\lambda \colon t x \Rightarrow x$ that are compatible in the sense that the diagram \begin{displaymath} \itexarray{ t x s & \overset{t\rho}{\to} & t x \\ \lambda s \downarrow & & \downarrow \lambda \\ x s & \underset{\rho}{\to} & x } \end{displaymath} commutes. Such a bimodule may be written as $x \colon s ⇸ t$. A \textbf{morphism} of left $t$-modules $(x,\lambda) \to (x',\lambda')$ is given by a 2-cell $\alpha \colon x \Rightarrow x'$ such that $\lambda' \circ t\alpha = \alpha \circ \lambda$. Similarly, a morphism of right $t$-modules $(y,\rho) \to (y',\rho')$ is $\beta \colon y \Rightarrow y'$ such that $\rho' \circ \alpha s = \alpha \circ \rho$. A morphism of bimodules $(x,\lambda,\rho) \to (x',\lambda',\rho')$ is given by $\alpha \colon x \Rightarrow x'$ that is a morphism of both left and right modules. More abstractly, the monads $s$ and $t$ in $K$ give rise to ordinary monads $s^*$ and $t_*$ on the hom-category $K(b,a)$, by pre- and post-composition. The associativity isomorphism of $K$ then gives rise to an invertible [[distributive law]] between these, so that the composite $s^* t_* \cong t_* s^* \colon x \mapsto t x s$ is again a monad. Then the category $Mod_K(s,t)$ of bimodules from $s$ to $t$ is the ordinary [[Eilenberg--Moore category]] $K(b,a)^{s^* t_*}$. \hypertarget{AlgebrasForMonadsInCat}{}\subsubsection*{{Algebras for monads in Cat}}\label{AlgebrasForMonadsInCat} If $K =$ [[Cat]] and $(T,\eta,\mu)$ is a monad on a [[category]] $C$, then a left $T$-module $A \colon 1 \to C$, where $1$ is the [[terminal category]], is usually called a \textbf{$T$-algebra} (see also at \emph{[[universal algebra]]}): it is given by an object $A \in C$ together with a morphism $\alpha \colon T A \to A$, such that \begin{displaymath} \array { T(T(A)) & \stackrel{\mu_A}\rightarrow & T(A) \\ T(\alpha) \downarrow & & \downarrow \alpha \\ T(A) & \stackrel{\alpha}\rightarrow & A } \end{displaymath} and \begin{displaymath} \array { A & \stackrel{\eta_A}\rightarrow & T(A) \\ & id_A \searrow & \downarrow \alpha \\ & & A } \end{displaymath} commute. In particular, every algebra over a monad $(T,\eta,\mu)$ in $Cat$ has the structure of an [[algebra over an endofunctor|algebra over the underlying endofunctor]] $T$. $T$-algebras can also be defined as left [[modules]] over $T$ \emph{qua} monoid in $End(C)$. There the object $A$ is represented by the constant endofunctor at $A$. The [[Eilenberg-Moore category]] of $T$ is the category of these algebras. It has a universal property that allows the notion of [[Eilenberg-Moore object]] to be defined in any bicategory. \hypertarget{properties}{}\subsection*{{Properties}}\label{properties} \hypertarget{colimits}{}\subsubsection*{{Colimits}}\label{colimits} see at \emph{[[colimits in categories of algebras]]} \hypertarget{tensor_product}{}\subsubsection*{{Tensor product}}\label{tensor_product} Given bimodules $x' \colon r ⇸ s$ and $x \colon s ⇸ t$, where $r,s,t$ are monads on $c,b,a$ respectively, we may be able to form the \textbf{tensor product} $x \otimes_s x' \colon r ⇸ t$ just as in the case of bimodules over rings. If the hom-categories of the bicategory $K$ have [[reflexive coequalizer]]s that are preserved by composition on both sides, then the tensor product is given by the reflexive coequalizer in $K(c,a)$ \begin{displaymath} \itexarray{ x s x' & \overset{\to}{\to} & x x' & \to x \otimes_s x' } \end{displaymath} where the parallel arrows are the two induced actions $\rho x'$ and $x \lambda$ on $s$. Indeed, under the hypothesis on $K$ the forgetful functor $Mod_K(r,t) = K(c,a)^{r^* t_*} \to K(c,a)$ [[colimits in categories of algebras|reflects reflexive coequalizers]], because the monad $r^* t_*$ preserves them, and so $x \otimes_s x'$ is an $r,t$-bimodule. If $K$ satisfies the above conditions then there is a bicategory $Mod(K)$ consisting of monads, bimodules and bimodule morphisms in $K$. The identity module on a monad $t$ is $t$ itself, and the unit and associativity conditions follow from the [[universal property]] of the above coequalizer. There is a [[lax functor|lax]] forgetful functor $Mod(K) \to K$, with comparison morphisms $1_a \to t$ the unit of $t$, and $x x' \to x \otimes_s x'$ the coequalizer map. \hypertarget{examples}{}\subsection*{{Examples}}\label{examples} If $K = Span(Set)$, the bicategory of [[span]]s of sets, then a monad in $K$ is precisely a small category. Then $Mod(K) = Prof$, the category of small categories, [[profunctor]]s and natural transformations. More generally, $Mod(Span(C))$, for $C$ any category with coequalizers and pullbacks that preserve them, consists of [[internal category|internal categories]] in $C$, together with [[internal profunctor|internal profunctors]] between them and transformations between those. \hypertarget{related_concepts}{}\subsection*{{Related concepts}}\label{related_concepts} \begin{itemize}% \item \textbf{algebra over a monad}, [[algebra over an endofunctor]], [[coalgebra over an endofunctor]], [[algebra over a profunctor]] [[∞-algebra over an (∞,1)-monad]] \begin{itemize}% \item [[model structure on algebras over a monad]] \end{itemize} \item [[algebra over an algebraic theory]] [[∞-algebra over an (∞,1)-algebraic theory]] \begin{itemize}% \item [[homotopy T-algebra]] / [[model structure on simplicial T-algebras]] \end{itemize} \item [[algebra over an operad]] [[∞-algebra over an (∞,1)-operad]] \begin{itemize}% \item [[model structure on algebras over an operad]] \end{itemize} \item [[Eilenberg-Moore category]], [[Kleisli category]], [[Eilenberg-Moore object]], [[Kleisli object]] \end{itemize} \hypertarget{references}{}\subsection*{{References}}\label{references} \begin{itemize}% \item [[John Isbell]], \emph{Generic algebras} Transactions of the AMS, vol 275, number 2 (\href{http://www.ams.org/journals/tran/1983-275-02/S0002-9947-1983-0682715-8/S0002-9947-1983-0682715-8.pdf}{pdf}) \item H. Lindner, \emph{Commutative monads} in \emph{Deuxi\'e{}me colloque sur l'alg\'e{}bre des cat\'e{}gories}. Amiens-1975. R\'e{}sum\'e{}s des conf\'e{}rences, pages 283-288. Cahiers de topologie et g\'e{}om\'e{}trie diff\'e{}rentielle cat\'e{}goriques, tome 16, nr. 3, 1975. \item R. Guitart, \emph{Tenseurs et machines}, Cahiers de Topologie et G\'e{}om\'e{}trie Diff\'e{}rentielle Cat\'e{}goriques, 21(1):5-62, 1980. \item A. Kock. \emph{Closed categories generated by commutative monads}, Journal of the Australian Mathematical Society, 12(04):405-424, 1971. \item G. J. Seal. \emph{Tensors, monads and actions}, Theory Appl. Categ., 28:No. 15, 403-433, 2013. \end{itemize} Discussion of [[model category]] structures on categories of [[coalgebras]] over [[comonads]] is in \begin{itemize}% \item [[Kathryn Hess]], [[Brooke Shipley]], \emph{The homotopy theory of coalgebras over a comonad} (\href{http://arxiv.org/abs/1205.3979}{arXiv:1205.3979}) \end{itemize} [[!redirects module of a monad]] [[!redirects module for a monad]] [[!redirects modules of a monad]] [[!redirects modules for a monad]] [[!redirects modules over a monad]] [[!redirects modules for monads]] [[!redirects modules over monads]] [[!redirects algebra of a monad]] [[!redirects algebra for a monad]] [[!redirects algebra over a monad]] [[!redirects algebras of a monad]] [[!redirects algebras for a monad]] [[!redirects algebras over a monad]] [[!redirects algebras for monads]] [[!redirects algebras over monads]] [[!redirects Eilenberg-Moore algebra]] [[!redirects Eilenberg-Moore algebras]] \end{document}