matchM is:exact
Eliminate all specified values a from f (Either a b)
by replacing each of them with a given f a.
Every monad is a multi-way selective functor.
Try to run an effectful function, on pattern match fail behave like
pure
>>> matchM (\'a' -> Just 'A') 'a'
Just 'A'
>>> matchM (\'a' -> Just 'A') 'x'
Just 'x'