Estenda os tipos de matriz usando a cláusula where no Swift

Eu gostaria de usar a estrutura Accelerate para estender [Float] e [Double], mas cada uma delas requer uma implementação diferente.

Eu tentei o óbvio:

extension Array<Float> {
}

e obtenha este erro:

"A extensão restrita deve ser declarada no tipo genérico não especializado 'Array' com restrições especificadas por uma cláusula 'where'"

É possível estender tipos genéricos no Swift 2 dessa maneira?

Eu tenho o código funcionando como esperado agora. Aqui está um exemplo mostrando um somatório usando a estrutura Accelerate.

extension _ArrayType where Generator.Element == Float {

    func quickSum() -> Float {
        var result: Float = 0
        if var x = self as? [Float] {
            vDSP_sve(&x, 1, &result, vDSP_Length(x.count))
        }
        return result
    }
}

extension _ArrayType where Generator.Element == Double {

    func quickSum() -> Double {
        var result: Double = 0
        if var x = self as? [Double] {
            vDSP_sveD(&x, 1, &result, vDSP_Length(x.count))
        }
        return result
    }
}

questionAnswers(6)

yourAnswerToTheQuestion