\section{Categorical Notions of Partiality} % \begin{frame}[t, fragile]{Classifying Partiality Monads} % A partiality monad should have the following properties: % \begin{itemize} % \item The following two programs should yield equal results: % \begin{multicols}{2} % \begin{minted}{haskell} % do x <- p % y <- q % return (x, y) % \end{minted} % \begin{minted}{haskell} % do y <- q % x <- p % return (x, y) % \end{minted} % \end{multicols} % where p and q are (partial) computations. % \end{itemize} % \end{frame} \begin{frame}[t, fragile]{Capturing Partiality Categorically} \begin{itemize} \item moggi denotational semantics (values A, computations TA) \item restriction categories \item equational lifting monads \end{itemize} \end{frame} \begin{frame}[t, fragile]{The Maybe Monad} \begin{itemize} \item Short definition \item is equational lifting monad \end{itemize} \end{frame} \begin{frame}[t, fragile]{The Delay Monad} \begin{itemize} \item Definition \item Strong-Bisimilarity \item Weak-Bisimilarity (Monad?) \end{itemize} \end{frame} \begin{frame}[t, fragile]{Iteration} \begin{itemize} \item Elgot-Algebras \item Free Elgot-Algebras yield monad K \item K is equational lifting \item K instantiates to maybe and delay \end{itemize} \end{frame}