Основна причина уникнення наборів у семантиці типів полягає в тому, що типова мова програмування дозволяє нам визначати довільні рекурсивні функції. Отже, яким би не було значення типу, він повинен мати властивість фіксованої точки. Єдиний набір з такою властивістю - це однократний набір.
Якщо точніше, рекурсивно визначене значення типу (де зазвичай - тип функції) визначається рівнянням з фіксованою точкою де може бути будь-якою програмою. Якщо інтерпретується як множина ми очікуємо, що кожен має фіксовану точку. Але єдиним безліччю з цією властивістю є синглтон.τ τ v = Φ ( v ) Φ : τ → τ τ T f : T → T Tvττv = Φ ( v )Φ : τ→ ττТf: Т→ ТТ
Звичайно, ви також могли усвідомити, що винуватцем є класична логіка. Якщо ви працюєте з інтуїтивістською теорією множин, то послідовно припускати, що існує безліч множин із властивістю фіксованої точки. Насправді це було використано для надання семантики мови програмування, див
Алекс Сімпсон, обчислювальна адекватність рекурсивних типів в моделях інтуїціоністської теорії множин , в аналах чистої та прикладної логіки, 130: 207-275, 2004.