## Minimized example ```Scala 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) ```