Considérons l'extrait de code suivant :
blah :: a -> b -> a
blah x y = ble x where
ble :: b -> b
ble x = x
Cela compile bien sous GHC, ce qui signifie essentiellement que b
de la 3ème ligne est différent de b
de la première ligne.
Ma question est simple : existe-t-il un moyen d'établir une relation entre la déclaration de type de l'utilisateur et la déclaration de type de l'utilisateur ? ble
à un type utilisé dans un contexte externe, c'est-à-dire la déclaration de type de blah
?
Évidemment, il ne s'agit que d'un exemple et non d'un cas réel d'utilisation des déclarations de type.