improve hlist performance: remove Head struct