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 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 =
  IF (analogRead A0 >. lit 50)
	( digitalWrite D0 (lit True)  )
    ( digitalWrite D0 (lit False) )
  }

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