Utilice el operador lógico como cierre combinado en reducir

Estoy tratando de reducir una serie deBools aplicando el operador lógicoO (||) usando el siguiente código, sin embargo, aparece un error:

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

Referencia ambigua al miembro '||'

Análogamente para enteros, el código funciona a las mil maravillas.

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

Pude hacerlo funcionar agregando un|| función (código a continuación) o usando un{ $0 || $1 } cierre pero no me gustan estos enfoques y preferiría simplemente pasar al operador.

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

Lo mismo sucede con lo lógico.Y (&&) operador.

¿Cómo puedo hacer que funcione sin usar el truco anterior?