Учитывая типКак получить параметры типа от SYBs dataTypeOf
data Foo =
Foo1 { foo1Name :: String}
| Foo2 { foo2Name :: String, foo2Age :: Integer }
данные, которые я хотел бы быть в состоянии извлечь из Data.Data.DataTypeS
Foo1
и Foo2
сек полей.
Я попытался
datatype = (undefined :: Foo)
constrs = dataTypeConstrs datatype
foo1 = fromConstrs (head constrs) :: Foo
foo1Fields = gmapQ dataTypeOf foo1
но foo1Fields
будет просто сказать, что foo1Name
является Prelude.[]
, а не какой параметр типа используется.
Можно ли извлекать параметры типа с помощью SYB или использовать другую библиотеку отражений?