There are only two hard things in Computer Science: cache invalidation and naming things. — Phil Karlton Since functional programming has reached the world of Serious Real Projects, a bunch of new buzzwords started to creep into the language of software engineers. Some of them are: monads, ta...