Use o operador lógico como fechamento combinado em reduzir

Estou tentando reduzir uma matriz deBools aplicando o operador lógicoOU (||) usando o código a seguir, no entanto, recebo um erro:

func reduceBools(values: [Bool]) -> Bool {
    return values.reduce(false, combine: ||)
}

Referência ambígua ao membro '||'

Analogamente para números inteiros, o código funciona como um encanto.

func reduceInts(values: [Int]) -> Int {
    return values.reduce(0, combine: +)
}

Consegui fazê-lo funcionar adicionando um|| (código abaixo) ou usando um{ $0 || $1 } fechamento, mas não gosto dessas abordagens e preferiria simplesmente passar o operador.

func ||(lhs: Bool, rhs: Bool) -> Bool {
    return lhs || rhs
}

O mesmo acontece com o lógicoE (&&) operador.

Como posso fazê-lo funcionar sem usar o hack acima?

questionAnswers(5)

yourAnswerToTheQuestion