The type checker allows:
String[2] tup = ["one", "two"];
switch(tup)
case ([a,b]) { print(b); }
where we really want case ([String a, String b]) {...}, but ceylon.ast throws:
Exception in thread "main" ceylon.language.AssertionError "Assertion failed
violated is JStaticType jType = isCase.type"
at ceylon.ast.redhat.isCaseToCeylon_.isCaseToCeylon(IsCase.ceylon:15)
at ceylon.ast.redhat.caseItemToCeylon_.caseItemToCeylon(CaseItem.ceylon:20)
at ceylon.ast.redhat.caseClauseToCeylon_.caseClauseToCeylon(CaseClause.ceylon:14)
at ceylon.ast.redhat.switchCasesToCeylon_$2.$call$(SwitchCases.ceylon)
at ceylon.ast.redhat.switchCasesToCeylon_$2.$call$(SwitchCases.ceylon:18)