It seems to be impossible to use kinds projectors with Type.Ctors on Scala 2 using some native compiler logic - what if we offer a workaround?
// replace
Type.Ctor1.of[Either[String, *]]
// with
Type.Ctor2.of[Either]
.fixLeft[String] // Type.Ctor1[Either[String, *]] which
// uses the logic for Type.Ctor2
// AND checks if the first param is <:< String on unapply
// AND sets it to String on apply
or/and we can try to implement such a logic in the macro - figure out the right type ctor, AND fix all known type params.
It seems to be impossible to use kinds projectors with Type.Ctors on Scala 2 using some native compiler logic - what if we offer a workaround?
or/and we can try to implement such a logic in the macro - figure out the right type ctor, AND fix all known type params.