For an undergrad course on compilers that I took, I had to build a parser, implement a state machine and a few other things. All in Haskell.
For my master's I took a course on static analysis, for which we had to perform usage analysis, type error diagnosis, implement a type checker etc. All in... Haskell.