+\todo[inline]{Is this example useful? Add more detailed explanation with line numbers?}
+\Cref{lst:intro_blink} shows an \gls{MTASK}\slash{}\gls{ITASK} application for an interactive application where the \gls{LED} on the microcontroller blinks every user-specified interval.
+Using a \glspl{SDS} defined in \gls{ITASK}, the blinking frequency of an \gls{LED} connected to \gls{GPIO} pin 13 can be changed on the fly.
+
+\begin{lstClean}[numbers=left,caption={\Gls{MTASK}\slash{}\gls{ITASK} interactive blinking.},label={lst:intro_blink}]
+interactiveBlink :: Task Int
+interactiveBlink =
+ withShared 500 \iInterval->
+ withDevice {TCPSettings | host = ..., port = ...} \dev->
+ liftmTask (intBlink iInterval) dev
+ -|| Hint "Interval (ms)" @>> updateSharedInformation [] iInterval
+
+intBlink :: Shared sds Int -> MTask v Int | mtask, liftsds v & RWShared sds
+intBlink iInterval =
+ declarePin D13 PMOutput \d13->
+ liftsds \mInterval=iInterval
+ In fun \blink=(\st->
+ writeD d13 st
+ >>|. getSds mInterval
+ >>=. \i->delay i
+ >>|. blink (Not st))
+ In {main = blink true}
+\end{lstClean}