Haskell анализирует имена и типы полей записи

Основываясь на недавнем обмене , меня убедили использовать Template Haskell для генерации некоторого кода, чтобы гарантировать безопасность типов во время компиляции.

Мне нужно проанализировать имена и типы полей записи. Я понимаю, что могу получить имена полей , используя constrFields. toConstr :: Data a => a -> [Строка] . Но мне нужно больше, чем имена полей, мне нужно знать их тип. Например, мне нужно знать имена полей типа Bool .

Как создать функцию f :: a -> [(String, xx)] , где a - это запись, String - это поле имя и xx - это тип поля?

9
задан Community 23 May 2017 в 12:08
поделиться