Some example \gls{mTask}-\glspl{Task} --- using almost all of their
functionality --- are shown in Listing~\ref{lst:exmtask}. The
\gls{mTask}-\glspl{Task} shown in the example do not belong to a particular
view and therefore are of the type \CI{View t r}.  The \CI{blink} \gls{mTask}
show the classic \gls{Arduino} blinking \gls{LED} application that blinks a
certain \gls{LED} every second. The \CI{thermostat} expression will enable a
digital pin powering a cooling fan when the analog pin representing a
temperature sensor is too high.  \CI{thermostat`} shows the same expression but
now using the assignment style \gls{GPIO} technique. The \CI{thermostat}
example also shows that it is not necessary to run everything as a \CI{task}.
The main program code can also just consist of the contents of the root
\CI{main} itself.

\begin{lstlisting}[%
	label={lst:exmtask},caption={Some example \gls{mTask}-\glspl{Task}}]
blink = task \blink=(\x.
		IF (x ==. lit True) (ledOn led) (ledOff led) :.
		blink (lit 1000) (Not x)
	In {main=blink (lit 1000) True}

thermostat :: Main (View () Stmt)
thermostat = {main = digitalWrite D0 (analogRead A0 >. lit 50) }

thermostat` :: Main (View () Stmt)
thermostat` = let
  a0 = aIO A0
  d0 = dIO D0 in {main = d0 =. a0 > lit 50 }
\end{lstlisting}
