SMS dit: Introduction to Functional Programming Using Haskell