When tuples are redued to a Tuple1, the type inferred shows Type *: EmptyTuple.type.
This looks rather ugly in the type signature and may confuse the reader of the code.
One possible solution is to add a typlevel function Simplify
type Simplify[T <: Tuple] <: Tuple = T match
case h *: EmptyTuple => Tuple1[h]
case _ => T
This function could be added to the typelevel computations to simplify the computed type.
When tuples are redued to a
Tuple1, the type inferred showsType *: EmptyTuple.type.This looks rather ugly in the type signature and may confuse the reader of the code.
One possible solution is to add a typlevel function
SimplifyThis function could be added to the typelevel computations to simplify the computed type.