Closed
Description
Minimized example
type Channel = "A" | "B"
type SelChannel[C <: Tuple] = C match {
case x *: xs => x | SelChannel[xs]
case _ => Nothing
}
val a: SelChannel[("A", "B", "C")] = ???
Output
In scala interactive :type
prints
scala> :type a
("A" : String) | SelChannel[(("B" : String), ("C" : String))]
Expectation
Shouldn't this instead fully expand?
scala> :type a
("A" : String) | ("B" : String) | ("C" : String)