Zastanawiałem się, czy kolejność deklaracji typu indukcyjnego może mieć znaczenie.
Na przykład w Coq możesz zdefiniować Nat
:
Inductive Nat :=
| O : Nat
| S : Nat -> Nat.
lub
Inductive Nat :=
| S : Nat -> Nat
| O : Nat.
Być może zmieni to kolejność parametrów w automatycznie generowanym eliminatorze, ale to nie jest wielka sprawa.
Zastanawiam się, czy można napisać taką deklarację
Inductive typewhereordermatters :=
| cons1 : type1
| cons2 : type2.
gdzie type2
jest zależny typ, w zależności od cons1
? (w tym przypadku napisanie deklaracji w innej kolejności nie miałoby żadnego znaczenia, ponieważ type2
odnosi się do cons1
tego, o czym jeszcze nie ma).