hlist used for both tuples and sums