The following code génère une erreur « prévue une contrainte »:comment définir une classe avec un type de famille
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE ExistentialQuantification #-}
type family Note a
type instance Note String = String
data SomeNote = forall a. Note a => SomeNote a
class HasNote b where
noteOf :: b -> SomeNote
L'erreur est Expected a constraint, but 'Note a' has kind '*', in the definition of SomeNote
. Pourquoi ? Comment puis-je le réparer?
Le but est d'inclure une instance de la famille de type Note dans une structure de données b, et d'utiliser noteOf b pour l'extraire, quelle que soit l'instance.