A question from yesterday had a definition of HList (from the HList package) that uses data families. Basically:
HList
data family HList (l :: [*]) data i