Я бы хотел написать программу, которая выводит некоторые метаданные типа Haskell. Хотя я знаю, что это неверный код, идея выглядит примерно так:
data Person = Person { name :: String, age :: Int }
metadata :: Type -> String
metadata t = ???
metadata Person -- returns "Person (name,age)"
Важным ограничением является то, что у меня нет экземпляра Person
, просто типа.
Я начал изучать Generics и Typeable/Data, но без экземпляра я не уверен, что они будут делать то, что мне нужно. Может ли кто-нибудь указать мне в правильном направлении?