Эта статья рассматривает проблему выражений в контексте зависимых типов, показывая, что функциональное и объектно-ориентированное программирование являются дуальными парадигмами, основанными на данных и коданных. Вместо того, чтобы расширять ООП зависимыми типами в произвольном порядке, авторы выводят дуальный, объектно-ориентированный исчисление с зависимыми типами, используя дефункционализацию и рефункционализацию. Результатом является язык с двумя семантически эквивалентными фрагментами — функциональным и объектно-ориентированным — связанными преобразованиями, сохраняющими типы и семантику, расширяющими теоретические основы и расширяемость языков типизированного программирования.
hackernoon.com
Deriving Dependently-Typed OOP from First Principles
