Ну "фанкториал" это тоже оверспециализированное, в реальности есть много абстракций, и в принципе абстракции тоже необязательны, важно, что есть какой-то структурный способ композиции данных, описывающих процесс с эффектами.
"Сайд" здесь отброшено, потому что эти эффекты уже не побочные, программист зачастую вполне явно желает вызвать эффекты, а не соглашается на них в процессе получения какого-то значения