updated to HList >= 0.3