Marathon Haskell mock console application that solves real world problems Revision : Semigroup, Monoids, Functors, Applicatives and Monads