Всем привет.
Подскажите монаду, которая, как Maybe/Option позволяет early termination, но при этом возвращает не Nothing или None, а то, что удалось накопить so far. Возможно, это комбинация State с чем-то ещё. Нужно сделать парсер для нестрогой грамматики: парсим, как можем, а на EOF возвращаем, что получилось распарсить. Интересует что-то из Scalaz, если можно воспользоваться готовым, но варианты на Haskell тоже приветствуются. Важна сама идея.