Merge branch 'master' of git.martlubbers.net:msc-thesis1617
[msc-thesis1617.git] / pres.mtask.tex
index 5865640..52115ae 100644 (file)
@@ -1,7 +1,7 @@
 \subsection{EDSLs}
 \begin{frame}
        \frametitle{Embedded Domain Specific Language}
-       \framesubtitle{What is are EDSL}
+       \framesubtitle{What are EDSLs}
        \begin{itemize}
                \item DSL:\ language for a specific domain
                \item E.g., PostScript, VimScript, HTML, \ldots
@@ -33,7 +33,9 @@
                                        \item Easy to add views
                                        \item Hard to extend
                                        \item Not type safe
-                                       \pause\item GADT
+                                       \onslide<4->{
+                                       \item GADT
+                                       }
                                \end{itemize}
                        \end{block}
                }
@@ -111,6 +113,7 @@ Plus x y = \e -> x e + y e
                                        \item Extendable
                                        \item Type safe
                                        \item Easy to add views
+                                       \item Phantom types for extra constraints
                                \end{itemize}
                        \end{block}
                }
@@ -121,12 +124,12 @@ Plus x y = \e -> x e + y e
 :: Evaluator a = Evaluator (Env -> a)
 :: PrettyPrinter a = PP String
 
-class intArith where
+class intArith where
        lit   :: t -> v t | toString t
        add   :: (v t) (v t) -> (v t) | + t
        minus :: (v t) (v t) -> (v t) | - t
 
-class boolArith where ...
+class boolArith where ...
 
 instance intArith Evaluator where
        lit x   = Evaluator \e->x
@@ -228,8 +231,15 @@ class assign v where
        \end{lstlisting}
 \end{frame}
 
+
 \begin{frame}[fragile]
-       \frametitle{Examples}
+       \frametitle{Tasks and Examples}
+       \begin{lstlisting}[language=Clean]
+class mtask v a where
+       task :: (((v delay r) a -> v MTask Expr) -> In (a->v u p) (Main (v t q)))
+               -> Main (v t q) | ...
+       \end{lstlisting}
+       \pause{}
        \begin{lstlisting}[language=Clean]
 blink = task \blink=(\x.
             IF x