Как часть опроса по различным методам типизированной формализации, я столкнулся с бумагой, в которой пропаганда использования одноэлементных типов (типы с одним жителем) в качестве способа поддержки зависимого программирования.
В соответствии с этим источником, в Haskell, существует разделение между значениями времени выполнения и типами времени компиляции, которые могут быть размыты при использовании одноэлементных типов из-за индуцированного изоморфизма типа/значения.
Мой вопрос: как типы одноэлементных отличаются от типов классов или от цитируемых /reified структур в этом отношении?
Я также особо хотел бы получить некоторое интуитивное объяснение в отношении теоретико-теоретического значения/преимуществ использования одноэлементных типов и степени, в которой они могут эмулировать зависимые типы в целом.