Extending monads with pattern matching
Tomas Petricek, Alan Mycroft, Don Syme · 2011
Sequencing of effectful computations can be neatly captured using monads and elegantly written using do notation. In practice such monads often allow additional ways of composing computations, which have to be written explicitly using combinators.