Ответ 1
Вопрос для любого из этих пакетов - это объем его целей. HList - это на самом деле 5 различных реализаций меток, два типа равенства, два типа литья, два из Record/RecordP и выбор Variant vs TIC. Все похожие, но разные компромиссы простоты использования, переносимости и расширений.
Новые функции GHC (GADT, связанные типы, типы ограничений, полиморфные виды, одноэлементные типы) могут допускать несколько разные компромиссы. В частности, одноэлементные типы могут допускать более яркие метки, а полиморфные типы могут позволить более элегантный Typeable/Data/Generics.
Пакет "записи", на который вы ссылаетесь, зависит от пакета "виды", который утверждает:
"Haskell не поддерживает подкиды и полиморфизм подкидышей. Однако этот пакет можно использовать для подражания подкиды рода * и subkind variables."
Но это уже не так, благодаря продвижению типа данных к видам в новых версиях GHC. Так что этот пакет в январе 2012 года может быть отчасти устаревшим.
Что касается записей, возможно, новая система будет извлекать из последнего раунда полиморфных линз: lens и/или lens-family.