Ordenar la matriz [Cualquiera]

Dada una matriz definida como sigue

let list: [Any]

Quiero ordenarloCUANDO

todos los valores en su interior tienen el mismo tipoElementY Element esComparable.Cuándo debería devolver la matriz ordenada

Entonces, necesitaría una función que cuando la matriz se rellena de la siguiente manera

let list: [Any] = [10, 11, 0, 2, -1]
let list: [Any] = ["Red", "Green", "Blue"]
let list: [Any] = [true, false, true, true]

devuelve la matriz ordenada.

Cuando debería volver nulo

Por otro lado cuandolist contiene uno de los siguientes ejemplos

let list: [Any] = [CGPointZero, CGPoint(x:1, y:1)] // CGPoint is not comparable
let list: [Any] = [10, "Hello"] // Values of different types

yo quieronil como valor de retorno.

¿Alguna idea?