Warning: this is a rant Recently, I have made great progress in my journey towards Haskell enlightenment. I finally see how many of the little pieces of the Haskell puzzle fit together. At this point, I feel empowered to go forth and write useful programs. I read through the source of Scotty the web framework the other day, and I was very pleasantly surprised that I understood how it works. I absolutely love Haskell. I love that it makes you think. One does not simply open a text editor and start banging at the keyboard to write a Haskell program. I love that Haskell encourages generalizations and abstractions. One of the biggest heureka moments in my journey was understanding the full implications of why a function of type a -> a has a single implementation. I’m addicted to running my program for the first time (after fighting with the compiler for ages), and having it work. I think monad transformers and lenses are really clever. By many criteria, Haskell is the perfect programming language.