\caption{The states of a \CI{TaskValue}}\label{fig:taskvalue}
\end{figure}
-\begin{lstlisting}[language=Clean,label={lst:taskex},%
+\begin{lstlisting}[label={lst:taskex},%
caption={An example \gls{Task} for entering a name}]
:: Name = { firstname :: String
, lastname :: String
Generated interfaces can be modified with decoration operators.
\section{Combinators}
+\todo{check and refine}
\Glspl{Task} can be combined using so called \gls{Task}-combinators.
Combinators describe relations between \glspl{Task}. \Glspl{Task} can be
combined in parallel, sequenced and their result values can be converted to
dictates.
\end{itemize}
-\begin{lstlisting}[language=Clean,%
+\begin{lstlisting}[%
caption={\Gls{Task}-combinators},label={lst:combinators}]
//Step combinator
(>>*) infixl 1 :: (Task a) [TaskCont a (Task b)] -> Task b | iTask a & iTask b
executed.
\begin{lstlisting}[%
- language=Clean,label={lst:shares},caption={\Gls{SDS} functions}]
+ label={lst:shares},caption={\Gls{SDS} functions}]
get :: (ReadWriteShared r w) -> Task r | iTask r
set :: w (ReadWriteShared r w) -> Task w | iTask w
upd :: (r -> w) (ReadWriteShared r w) -> Task w | iTask r & iTask w