Think of haskell functions as regular \emph{mathematical} functions. \slidep \vspace{\baselineskip} \begin{center} \includegraphics*[scale=0.6]{./images/function-machine.png} \end{center} \begin{itemizep} \item does this function write to the hard drive? \item does the output depend on anything else except the input (e.g. time, environment, ...)? \end{itemizep} \slidep \vspace{\baselineskip} It's all about \emph{input} and \emph{output} of functions! And that's it. Nothing else to worry about.