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'