are in and you should be able to view them (and the marks for each subquestion). Please contact me if you have any questions (e.g., 0 marks for a subquestion you definitely answered)
The final raw mark is the harmonic mean ((2 * class * exam) / (class + exam)) between the class mark and the exam mark. However, since the course has an exam hurdle, if the exam mark is below 50, this is capped at 45.
I answered this in the lecture, but since the recordings are not searchable, just to clarify:
* Church encodings will not be part of the exam. You should be able to read & write lambda expressions (for example, as part of a Haskell program), though.
* Phantom types, rank-n types, existential types may be part of the exam to the degree we covered them in the lecture and exercises. That is, you should know what they are, why they are used, and understand code which uses them.