Dan Rosen (@mergeconflict) does an excellent job in this talk of demystifying monads through a thoroughly practical example of how the “monad design pattern” can be used to de-clutter your code.
He gives a couple of examples using the Option, Validation and List monads. He notes the similarities between these examples and introduces the notion of for-comprehensions to declutter his examples even further.
Dan is a great communicator and this is an easy talk to watch and understand. Perfect for those investigating the power of monads.
You can find the talk here on YouTube.