Assignment 4: Monads and Haskell Assignment 3: Recursive Types and References Assignment 2: Type Safety Assignment 1: Preliminaries