<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">And now we are going to write functions to use it:
\begin{haskellcode}
isListEmpty :: List t -&gt; Bool
isListEmpty Emtpy = True
isListEmpty x     = False
\end{haskellcode}
\pause
We can even have more generic stuff like:
\begin{haskellcode}
f :: a -&gt; b
\end{haskellcode}
Whatever the function does... it has something of one type and returns something of another type (it could be the same type, but doesn't need to). That's all we know.
\vspace{\baselineskip}
\\
\pause
Similarly, remember the function \code{head} which gives us the first element of a list? The type signature actually looks like this:
\begin{haskellcode}
head :: [a] -&gt; a
\end{haskellcode}
Makes sense?</pre></body></html>