typealias OptionalArray<T> = Array<Optional<T>> extension OptionalArray { func filterNil() -> Array<T> { // use of undeclared type 'T' return flatMap { $0 } } }