Past exams
Exams by Andreas Abel
June 2025 (with solutions): Probability monad with monad laws and example application
March 2025 (with solutions and grading info): EDSL for boxy layout | Monad for computation cost accounting
August 2024 (with solutions): Monad and monad transformer for errors and warnings | Interpreter for arithmetical expressions
March 2024 (with solutions): Non-determinism monad | EDSL for category with finite products
Exams by Alejandro Russo
March 2023 (with solutions): Free monad
March 2022 (with solutions): Non-determinism monad
March 2019 (with solutions): State+exception |
sumlen|foldr ⊕ ≡ foldl ⊕|HList|MACMarch 2018 (with solutions): Eta | State monad laws |
evalHutton's razor | Type-levelNatAugust 2017 (with solutions): Phantom types | Functors | Misc (alt.
Monad; notFunctor; notApplicative)March 2017 (with solutions):
Applicative| IndexedExp,Serialised|MACMarch 2016 (with solutions):
Functorleaf-labelled tree | Alt.Monad|MAC
Exams by Patrik Jansson
August 2014 (solutions): Design DSL for boxy framed layout with laws, deep and shallow embedding | Complete QuickCheck suite for
qsort| GADT forExprwith lists, evaluation w/ and w/o environmentMarch 2014 (solutions): Monad via
join|joinlaws for writer monad | DSL for circuits with delayAugust 2013 (solutions): DSL: QuickCheck's
Gen| UnderstandWriterT IOdirectory listing | Parser lawsMarch 2013 (solutions): Properties of
sort| DSL for symbolic arithmetic expressions | Understand generalized triesAugust 2012 (solutions): DSL for shapes |
Functorfor +, ×, → |ListTmonad transformerMarch 2012 (solutions): DSL for state monad | DSL for pretty printer |
VecandFinwith type-level natsAugust 2011 (solutions): QuickCheck
sort, list induction | DSL for date sets | UnderstandMaybeT WriterMarch 2011 (solutions): Difference lists w/ laws | Parallelism | Parser DSL embedded as GADT
August 2010 (solutions): DSL and monad for 1-cell calculator | Extending typed expression language:
eval,inferMarch 2010 (solutions): DSL for
Vector(finite lists) |Monadproduct |ExceptT+StateT(2 ways)
Exams by Ulf Norell
- March 2009
(solutions):
DSL for ant in maze |
Writermonad | Well-typed expressions: inferVar,Let| evalApp(higher types) | locking usingstm
A take-home exam
- March 2008
(solutions)"
GameMonadcounting lives |DocDSL for pretty printing
More exams?
The list above will give you a pretty good idea what to expect from an exam. Of course, the course has been run by different teachers and each of them has its own style. If you still want more exams, you can get a copy of them from the Studieexpedition.