\begin{itemize} \item What are side effects? \item What is referential transparency? \item Can you have referential transparency with side effects? \item What does the output of a haskell function depend on? \item What is laziness? \item When are types checked in haskell? \item What are the differences between lists and pairs? \end{itemize} Does this compile? If not, fix it. Is this a total or a partial function? \begin{haskellcode} data IntOrDouble = MkDouble Double | MkInt Int f :: Int -> IntOrDouble f 0 = 0.5 \end{haskellcode}