Me preguntaba si el orden de las declaraciones de tipo inductivo puede importar.
Por ejemplo, en Coq, puede definir Natya sea por:
Inductive Nat :=
| O : Nat
| S : Nat -> Nat.
o
Inductive Nat :=
| S : Nat -> Nat
| O : Nat.
Quizás esto cambie el orden de los parámetros en el eliminador generado automáticamente, pero eso no es gran cosa.
Lo que me pregunto es si es posible escribir una declaración como
Inductive typewhereordermatters :=
| cons1 : type1
| cons2 : type2.
donde type2es un tipo dependiente, dependiendo de cons1? (y en este caso, escribir las declaraciones en el otro orden no tendría ningún significado, porque type2se estaría refiriendo a lo cons1que aún no existe).