I searched Hackage and couldn't find anything like the following but it seems to be fairly simple and useful. Is there a library that contains sort of data type?

```
data HList c where
  (:-) :: c a => a -> HList c
  Nil :: HList c

```

All the HLists I found could have any type, and weren't constrained.

If there isn't I'll upload my own.