Что-то мы действительно не туда ушли. Изначальный вопрос вытекал из противостояния ФП и ООП. И последнее время приводится куча примеров высокоуровневых абстракций (типа монад, семейств типов и т. п.) которые можно строить в ФП. И соотвественно можно делать очень гибкие библиотеки и условно меньше писать в пользовательском коде. Что этому может противопоставить ООП парадигма?