The presence of this object can't be good for the "weight" of HList. It doesn't seem to reference anything from its scope so it should be possible to put it into a static location, e.g. the HList companion object. And you could omit the extra object altogether and make the helper type functions protected.