Scala - descomprimir genérico para HList

Tengo el siguiente problema de Scala:

Escribe una función que tome una lista de listas

List(23 :: “a” :: 1.0d :: HNil, 24 :: “b” :: 2.0d :: HNil)    # this is list of hlists

y volver atrás HList of Lists

List[Int](23, 24) :: List[String](“a”, “b") :: List[Double](1.0d, 2.0d) :: HNil # this is hlist of lists

Esto es algo así como unzipN genérico. ¿Es posible para HList arbitrario?

Gracias.

Respuestas a la pregunta(2)

Su respuesta a la pregunta