I presented this workshop at LambdaConf Winter Retreat in January 2017. The first hour or so is an overview of the Applicative and Monad typeclasses in Haskell: what they are and how they are different from each other. It includes a demonstration of AccValidation and why that type does not have a Monad instance. It also covers usage of ApplicativeDo.
The second portion of the talk (roughly the second half) covers building an command-line parsing application using the optparse-applicative library.
The code and slides are all available here.
Video of the talk: