-\begin{frame}
- \frametitle{Scientific Impact}
- \begin{block}{Metrics}
- \begin{itemize}[<+->]
- \item Cited $676$ times in $23$ years
- \item $\pm 30$ cites per year
- \item Cited as de-facto monad introducing paper
- \item Monads in computer science: Moggi et al.\ in $1989$
- \end{itemize}
- \end{block}
-\end{frame}
-
-\begin{frame}
- \frametitle{Objective \& Current state}
- \begin{block}{Objective}
- \begin{itemize}
- \item First introduction to monads
- \item Layman's terms
- \end{itemize}
- \end{block}
-
- \pause%
- \begin{block}{Current state of the art}
- \begin{itemize}[<+->]
- \item $2016$: $2$ papers citing Wadler
- \item $2015$: $24$ papers citing Wadler
- \item Ranging from
- \begin{itemize}[<+->]
- \item Introducing new monad types
- \item Generic programming
- \item Designing modular DSL's
- \item Concurrency frameworks in functional languages
- \item\ldots
- \end{itemize}
- \end{itemize}
- \end{block}
-\end{frame}
-
-\section{Contents}
-\subsection{Introduction}
-\begin{frame}
- \frametitle{Introduction}
- \begin{itemize}
- \item Monads (Moggi et al.)
- \item Integrate the impure in the pure
- \item Wadler shows \textsc{Haskell} examples
- \item Following samples are in \textsc{Clean}
- \end{itemize}
-\end{frame}
-
-\subsection{Naive approach}
-\begin{frame}[fragile]
- \frametitle{Case study (1)}
- \framesubtitle{Evaluator}
- \begin{CleanCode}
+\subsection{Setting and objective}
+\emph{Monads for functional programming} was initially published in
+\emph{Program Design Calculi} which was a collection of lecture notes
+accompanying the \emph{Marktoberdorf} summer school in 1992. Later it was
+reissued in \emph{Springer}s \emph{Advanced Functional Programming} book which
+presents the tutorials from a spring school in Sweden in 1995.
+
+The notes were written to introduce the reader to the idea of a Monad usable in
+a functional programming context. Where monads are already defined and studied
+in category theory in the early fifties. Moggi et al.\ were the first in 1988
+to see the usefulness in computer science and in particular functional
+programming. At the time of writing this paper was introducing state of the art
+research which later became the preferred way of dealing with side-effects in a
+pure language. The paper familiarized readers with the concepts while only
+requiring basic knowledge in functional programming.
+
+\subsection{Impact}
+While Wadler had already published a lot about monads this turned out to be one
+of the most accessible and readable papers concerning the topic. A lot of the
+references in the paper cite his own work, but this is logical since he was
+part of the small group of researchers that kick-started the use of monads in
+functional programming.
+
+The paper has been cited over $676$ times over the past $23$ years resulting in
+a $\pm 30$ cites per year. It is cited as the de-facto monad introducing paper.
+In 2015 and 2016 the paper has already been cited numerous times in topics
+including but not limited to: Introducing new monad types, generic programming,
+designing modular design specific languages, concurrency frameworks in
+functional languages and probabilistic computing.
+
+\section{Proposal and evidence}
+\subsection{Proposal}
+Wadler proposes to capture side-effects in monads. A monad is a structure
+containing a monad type:
+\CI{:: M a}\\
+Secondly a monad contains a function to lift a value to the monadic domain:
+\CI{unit :: a -> M a}\\
+Lastly a monad contains the function that transforms \CI{a} into \CI{b} while
+capturing the possible side-effects in \CI{M}:
+\CI{(>>=) infixl 1 :: (M a) (a -> M b) -> M b}
+
+When this structure adheres certain laws they are very useful in capturing
+side-effects that would otherwise be difficult to handle in an impure language.
+Wadler shows this by tackling several classical problems arising in the pure
+functional programming world.
+
+\subsection{\emph{Expression problem}}
+In this review we will show one of the examples given to illustrate the meaning
+and usage the monadic pattern. The code snippets in the original paper
+supposedly are \emph{haskell} however they are not all valid. Thus the
+following snippets have been translated to valid
+\emph{Clean}~\footnote{\url{http://clean.cs.ru.nl}}
+
+\paragraph{Simple evaluator}
+Say we have a simple evaluator where an expression is either an integer or a
+division between two expressions. Writing a simple evaluator is very straight
+forward.
+\begin{CleanCode}