¿Por qué no puedo usar una constante de tupla como un caso en una declaración de cambio

Decidí jugar con las declaraciones de casos y las tuplas de Swift. Parece una de las características más geniales del lenguaje.

Decidí jugar con tuplas mes / día / año. Para mi sorpresa, no puedo usar un valor de tupla constante como un caso en una declaración de cambio. Aquí hay un ejemplo (se puede pegar en un área de juegos y ejecutar)

import UIKit
typealias mdyTuple = (month: Int, day: Int, year: Int)
let joesBirthday: mdyTuple = (month: 6, day: 7, year: 1978)
let someday: mdyTuple = (6, 7, 1978)

switch someday
{
  //---------
  //The line "case joesBirthday" won't compile.
  //case joesBirthday:
  //  println("Joe was born on this day"
  //---------
case (joesBirthday.month, joesBirthday.day, joesBirthday.year):
  println("Joe was born on this day")
case (joesBirthday.month, joesBirthday.day, let year):
  println("Joe is \(year-joesBirthday.year) today")
default:
  println("Some other day")
}

El código comentado,case joesBirthday:, no se compilará (en Xcode 6.3, si eso importa). El siguiente caso (donde enumero todos los elementos de la tupla joesBirthday por separado), que es más difícil de escribir y más difícil de leer, funciona)

Mi área de juegos se bloqueó Xcode al escribir esto, y se bloqueó OTRA VEZ al intentar reiniciar Xcode, por lo que tengo problemas para informar el código de error.

Ok, finalmente obtuve Xcode para detener el bloqueo (después de 4 bloqueos seguidos. ¡Yayyy!) El error es "Operador binario~= no se puede aplicar a dos operandos mdyTuple ".

¿Por qué está tratando de usar el~= operando? ¿No son iguales las tuplas?

Hay algunalimpiar sintaxis alternativa que me permite usar una tupla constante en el caso de una declaración de cambio?

Respuestas a la pregunta(1)

Su respuesta a la pregunta