[Haskell] Software Engineering and Functional Programming (with Haskell)