Etant donné un type de donnéesComment obtenir des paramètres de type de Sybs dataTypeOf
data Foo =
Foo1 { foo1Name :: String}
| Foo2 { foo2Name :: String, foo2Age :: Integer }
Je voudrais être en mesure d'extraire le Data.Data.DataTypeS
des champs de Foo1
et Foo2
.
J'ai essayé
datatype = (undefined :: Foo)
constrs = dataTypeConstrs datatype
foo1 = fromConstrs (head constrs) :: Foo
foo1Fields = gmapQ dataTypeOf foo1
mais foo1Fields
va juste dire que foo1Name
est un Prelude.[]
et non le paramètre type est utilisé.
Est-il possible d'extraire des paramètres de type en utilisant SYB ou dois-je utiliser une autre bibliothèque de réflexion?