Ответ Луиджи правильный, но не очень информативный, ИМХО.
Все коллекции могут реализовывать интерфейс монады, но подпись для flatMap
в них не является плоской картой монады. Тем не менее, большую часть времени они будут вести себя как монады. Почти все классы, перечисленные Луиджи, относятся к коллекциям.
LeftProject
и RightProject
относятся к Either
. По сути, Either
не является монадой, но если вы «проецируете» одну из сторон, то эта сторона действует во многом как Option
монада.
Parser
- это монада, которая составляет основу комбинаторов синтаксического анализа.
Признаюсь, я не узнаю ControlContext
. Интересно, связано ли это с продолжениями (которые тоже являются монадами).