Одне з потужних речей, які компілятори можуть зробити під час фази оптимізації, - це замінити неефективні подання на еквівалентні. Наприклад, у Haskell ви можете використовувати лінивий список для обчислення суми чисел, але компілятор GHC Haskell визнає, що це еквівалентно використанню ітерації з тимчасовою змінною. Таким чином, ви можете програмувати проти простої абстракції, на яку легко міркувати, тоді як ваш виконуваний файл використовує уявлення, що краще підходить до апаратної платформи (а це набагато важче міркувати про масштаб).
Однак еквіваленти, відомі компілятору, здебільшого обмежені добре відомими та дослідженими структурами даних, такими як синтез потоків для списків. Ви можете визначити власні еквіваленти у вихідному коді (використовуючи пару функцій перетворення, які складаються з ідентичності в будь-якому напрямку), але вам доведеться застосувати їх вручну, і це може стати складним, щоб вибрати правильний тип, який потрібно використовувати в усіх місцях щоб уникнути зайвих конверсій.
Тепер давайте уявимо собі світ, де ви маєте визначити "вищі індуктивні типи", скажімо, канонічна карта пошуку. Цей тип має декілька конструкторів для різних типів карт: двійковий пошук, AVL, червоно-чорний, Trie, Patricia тощо. Поряд із типовими конструкторами даних ви також визначаєте тип еквівалентності, що фіксує, можливо, кілька перетворень між цими поданнями, де різні конверсії пропонують різні розміри ефективності (тобто час проти пам'яті).
Що робити, якщо компілятору вдалося використати це поняття для прозорого переписування представлень на карті, так само, як це можна зробити сьогодні зі злиттям списку? Тим часом у вашому коді ви працюєте з конструкцією, про яку просто провести міркування (і полегшує перевірку роботи, якщо ви перебуваєте в такому середовищі). Це може здатися як абстрактний інтерфейс з декількома реалізаціями, але він включає свободу вибору будь-якої реалізації та компілятор прозоро підміняє інший за необхідності, не впливаючи на значення програми.
HoTT дає нам теоретичну основу для виправдання цього фантазійного механізму переписування та цих чітко визначених типів, оскільки він сприяє поняттю еквівалентності як рівносильному рівності. Залишається побачити, як це насправді вийде на практиці, але це дає нам теоретичну основу, на якій базуватись майбутні роботи.