Мені було цікаво, чи може мати значення порядок декларацій індуктивного типу.
Наприклад, у Coq ви можете визначити Nat
:
Inductive Nat :=
| O : Nat
| S : Nat -> Nat.
або
Inductive Nat :=
| S : Nat -> Nat
| O : Nat.
Це, можливо, змінить порядок параметрів в автоматично сформованому елімінаторі, але це не велика справа.
Мені цікаво, чи можна написати декларацію на кшталт
Inductive typewhereordermatters :=
| cons1 : type1
| cons2 : type2.
де type2
залежний тип, залежно від cons1
? (і в цьому випадку писати декларації в іншому порядку не мало б жодного значення, оскільки type2
посилання на cons1
яке ще не існує).