Optional assignment

The optional assignment consists of the description of a library in Hackage or language extension from GHC in several forms. The work can be shared by a group of at most 3 students, and adds up to 0.5 points to the final grade.

More precisely, this description has to show what can be achieved with that library or language extension, and put it in relation with elements seen during the course. There are three elements which compose this work:

  1. A document of around 3 to 5 pages with an introduction and textual description.
  2. A piece of code, preferrably a Cabal project, where the library or extension is used.
  3. During the last day of the course a 10-minute presentation must be given by one of the components of the group.

If you are interested in working on this optional assignment, please write me an e-mail with the names and Solis identifiers of the entire group before 14 October. Please also include one or several topics you would like to work on. Please then wait until you receive confirmation of the topic you need to write about.

List of topics

The following topics are provided as a suggestion, but many other are possible.

Language extensions

Topic Group
Generalised ADTs
Multi-parameter type classes
Pattern synonyms
Extensions to list comprehensions


Topic Group
Contravariant functors and bifunctors
Semirings Max Meijer
Jens Heuseveldt
Lisanne Waardenburg
Arrows Marien Raat
Ruud Verbeek
Mehul Mistry


Topic Description Group
foldl Composable folds
servant HTTP server Willem Bart Wijnia
Sanne Maasakkers
aeson JSON serialization Maaike Koninx
Jordi Wippert
Kevin Wilbrink
Jerry Hu
logict Logic programming
regex-applicative Regular expressions
errors Error handling
monad-par Parallel programming Tijmen van der Beek
Tim Brussaard
Ben Veldhuijzen
persistent Database access Niels Hendrikx
Lars Werkman