{-# LANGUAGE DataKinds, ExistentialQuantification, KindSignatures #-}
import Data.Proxy
data Type t= forall (a :: t). Type (Proxy a)
donne l'erreurPourquoi la quantification existentielle et les datakinds ne fonctionnent-ils pas ensemble?
Type variable ‘t’ used in a kind
In the kind ‘t’
In the definition of data constructor ‘Type’
In the data declaration for ‘Type’
Mais t
est une variable genre, pas une variable de type. Que se passe-t-il?
Vous ne pouvez pas mélanger encore les types et les types dans la syntaxe concrète. Le mieux que vous pouvez faire est 'Type de données (tp :: KProxy t) = forall (a :: t). Tapez (Proxy a) '(bien que je ne vois pas à quel point ce type de données serait utile, mais c'est un problème tout à fait différent.) – user2407038