Модели дженериков и метапрограммирования: Go, Rust, Swift, D и другие.
«Я расскажу о системах дженериков из разных языков и их реализации. Начну с решения задачи в языках без подобной системы (вроде С), а затем покажу, как постепенное добавление расширений приводит к системам из других языков»:
http://amp.gs/rNHT