Uso de protocolos como tipos de matriz y parámetros de función en swift

Quiero crear una clase que pueda almacenar objetos que se ajusten a un determinado protocolo. Los objetos deben almacenarse en una matriz escrita. De acuerdo con la documentación de Swift, los protocolos se pueden usar como tipos:

Debido a que es un tipo, puede usar un protocolo en muchos lugares donde se permiten otros tipos, incluidos:

Como tipo de parámetro o tipo de retorno en una función, método o inicializadorComo el tipo de una constante, variable o propiedadComo el tipo de elementos en una matriz, diccionario u otro contenedor

Sin embargo, lo siguiente genera errores de compilación:

El protocolo 'SomeProtocol' solo puede usarse como una restricción genérica porque tiene requisitos de tipo Self o asociados

¿Cómo se supone que debes resolver esto?

protocol SomeProtocol: Equatable {
    func bla()
}

class SomeClass {

    var protocols = [SomeProtocol]()

    func addElement(element: SomeProtocol) {
        self.protocols.append(element)
    }

    func removeElement(element: SomeProtocol) {
        if let index = find(self.protocols, element) {
            self.protocols.removeAtIndex(index)
        }
    }
}

Respuestas a la pregunta(7)

Su respuesta a la pregunta