Une autre différence entre Idris et Agda est que l'égalité propositionnelle d'Idris est hétérogène, tandis que celle d'Agda est homogène.
En d'autres termes, la définition putative de l'égalité dans Idris serait:
data (=) : {a, b : Type} -> a -> b -> Type where
refl : x = x
tandis qu'à Agda, c'est
data _≡_ {l} {A : Set l} (x : A) : A → Set a where
refl : x ≡ x
Le l dans la définition Agda peut être ignoré, car il a à voir avec le polymorphisme de l'univers mentionné par Edwin dans sa réponse.
La différence importante est que le type d'égalité dans Agda prend deux éléments de A comme arguments, tandis que dans Idris, il peut prendre deux valeurs avec des types potentiellement différents .
En d'autres termes, dans Idris, on peut affirmer que deux choses de types différents sont égales (même si cela finit par être une affirmation non démontrable), tandis que dans Agda, l'affirmation même est absurde.
Cela a des conséquences importantes et de grande portée pour la théorie des types, en particulier en ce qui concerne la faisabilité de travailler avec la théorie des types d'homotopie. Pour cela, l'égalité hétérogène ne fonctionnera tout simplement pas car elle nécessite un axiome incompatible avec HoTT. D'un autre côté, il est possible d'énoncer des théorèmes utiles avec une égalité hétérogène qui ne peuvent pas être énoncés directement avec une égalité homogène.
L'exemple le plus simple est peut-être l'associativité de la concaténation vectorielle. Étant donné les listes indexées en longueur appelées vecteurs définis ainsi:
data Vect : Nat -> Type -> Type where
Nil : Vect 0 a
(::) : a -> Vect n a -> Vect (S n) a
et concaténation avec le type suivant:
(++) : Vect n a -> Vect m a -> Vect (n + m) a
nous pourrions vouloir prouver que:
concatAssoc : (xs : Vect n a) -> (ys : Vect m a) -> (zs : Vect o a) ->
xs ++ (ys ++ zs) = (xs ++ ys) ++ zs
Cette déclaration est absurde sous égalité homogène, car le côté gauche de l'égalité a un type Vect (n + (m + o)) a
et le côté droit a un type Vect ((n + m) + o) a
. C'est une déclaration parfaitement sensée avec une égalité hétérogène.