blob: fcdecb3ad3c55d199397105cc33102310973959c (
plain) (
tree)
|
|
object NonEmptyCons {
def unapply[H, T](c: (H, T)): Option[(H, T)] = Some(c)
}
object Main {
type BT[+H, +T <: Tuple2[Tuple2[H, T], Tuple2[H, T]]] = Tuple2[H, T]
// type T = Tuple2[String,String]
type BinaryTree[+E] = BT[E, T forSome { type T <: Tuple2[BT[E, T], BT[E, T]] }]
def foo[E](tree: BinaryTree[E]): Unit = tree match {
case NonEmptyCons(_, tail) => {
tail match {
case NonEmptyCons(_, _) => {
}
}
}
}
}
|