Ввод-вывод в чистых языках. Монада IO. Монады для записи в лог, чтения из внешнего окружения и работы с изменяемым состоянием: Reader, Writer, State.