Por que não consigo usar uma constante de tupla como caso em uma instrução switch

Decidi brincar com as declarações e as tuplas do Swift. Parece um dos recursos mais interessantes do idioma.

Decidi jogar com tuplas mês / dia / ano. Para minha surpresa, não posso usar um valor constante de tupla como caso em uma instrução switch. Aqui está um exemplo (pode ser colado em um Playground e executado)

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")
}

O código comentado,case joesBirthday:, não será compilado (no Xcode 6.3, se isso for importante). O caso abaixo (onde listo todos os elementos da tupla joesBirthday separadamente), que é mais difícil de digitar e mais difícil de ler, funciona)

Meu Playground travou o Xcode ao digitá-lo e travou novamente tentando reiniciar o Xcode, por isso estou tendo problemas para relatar o código de erro.

Ok, finalmente consegui que o Xcode parasse de travar (após 4 falhas seguidas. Yayyy!) O erro é "Operador binário~= não pode ser aplicado a dois operandos mdyTuple ".

Por que está tentando usar o~= operando? As tuplas não são equivalentes?

Existe algumlimpar \ limpo sintaxe alternativa que me permite usar uma tupla constante no caso de uma instrução switch?

questionAnswers(1)

yourAnswerToTheQuestion