the prototype, which uses \emph{type families}.
\stopdesc
- TODO: Reference Christiaan
+ TODO: Reference Christiaan / describe dependent typing
\subsection{User-defined types}
There are three ways to define new types in Haskell: Algebraic
datatypes with the \hs{data} keyword, type synonyms with the \hs{type}