Какова цель читающей монады?

Читательская монада настолько сложна и кажется бесполезной. В императивном языке, таком как Java или C ++, нет эквивалентной концепции для читающей монады, если я не ошибаюсь. Вы можете привести мне простой пример и немного прояснить...