Now that scala/scala3#7380 has been fixed, we can replace this idiom:
using m: Mirror.ProductOf[P], i: m.MirroredElemTypes =:= A *: EmptyTuple
with:
using m: Mirror.ProductOf[P] { type MirroredElemTypes = A *: EmptyTuple }
To retain binary compatibility, we'd have to retain the existing signatures as private[skunk] for the various operations that have already been released. See scodec/scodec@919f964 for a similar change that was done to scodec.