In Pure Swift environment (no briding to NSArray)Problem: [[1]]==[[1]] //false or ([[1]] as Array)==([[1]] as Array) //false This problem only happens in pure Swift environment.Though [1] == [1], any array of integers is not marked equatable. Programmer cannot mark [Int], [String], …, etc. as Equatable protocol.Thus two [[Int]] cannot be compared using “==“.Solution 1: extension SequenceType: Equatable where Generator.Element: Equatable { }This gramma should be allowed in newer version of Swift.This means a SequenceType with Equatable elements can be marked Equatable.Solution 2:You can make a new mechanism in Swift that automatically binds “Equatable” to any generic type has “==“ operator defined.For example, in Swift Standard Swift Library, you have defined==<T: Equatable>(lhs:[T], rhs:[T])->BoolThus, the special generic type [T] where T:Equatableshould be automatically marked as “Equatable.