1. Introduction to the course.

2. Domain Specific Embedded Languages (EDSL).

3. Monads

4. Functors, Applicative Functors, and Monads

5. Parser derivation

6. Monad transformers

7. Monad transformers II

8. Program verification by equational reasoning

9. Data structure invariants in Agda I: Ordered search trees

10. Data structure invariants in Agda II: Balanced trees

11. Data structure invariants in Agda III: Typed syntax trees

12a. Type-based modeling in Haskell I

12b. Type-based modeling in Haskell II

13 & 14. Software engineering in Haskell

15. Information-flow Control in Haskell