Design patterns and idioms can widen our perspective byshowing us where to look, what to look at, and ultimatelyhow to see what we are looking at. At their best, patternsare a shorthand method of communicating better waysto code (writing less, more maintainable, and moreefficient code)This book starts with Haskell 98 and through the lens ofpatterns and idioms investigates the key advances andprogramming styles that together make "modern Haskell".Your journey begins with the three pillars of Haskell.Then you'll experience the problem with Lazy I/O, togetherwith a solution. You'll also trace the hierarchy formedby Functor, Applicative, Arrow, and Monad. Next you'llexplore how Fold and Map are generalized by Foldableand Traversable, which in turn is unified in a broadercontext by functional Lenses. You'll delve more deeply intothe Type system, which will prepare you for an overviewof Generic programming. In conclusion you go to theedge of Haskell by investigating the Kind system andhow this relates to Dependently-typed programming