[Haskell] Infinite, open, statically constrained HLists