extension<T> Array where Element == Optional<T> { func compact() -> Array<T> { ... } }
func compact<T>(_ array: Array<Optional<T>>) -> Array<T> { ... }