 //
 
 @warn_unused_result
-func _toNSArray<T, U : AnyObject>(_ a: [T], @noescape f: (T) -> U) -> NSArray {
+func _toNSArray<T, U : AnyObject>(_ a: [T], f: @noescape (T) -> U) -> NSArray {
   let result = NSMutableArray(capacity: a.count)
   for s in a {
     result.add(f(s))

  /// `body` is complicated than that results in unnecessarily repeated code.
  internal func _withNilOrAddress<NSType : AnyObject, ResultType>(
    of object: inout NSType?,
    body: @noescape AutoreleasingUnsafeMutablePointer<NSType?>? -> ResultType
  ) -> ResultType {
    return self == nil ? body(nil) : body(&object)
  }

  /// it into the memory referred to by `range`
  func _withOptionalOutParameter<Result>(
    _ range: UnsafeMutablePointer<Range<Index>>?,
    body: @noescape (UnsafeMutablePointer<NSRange>?) -> Result
  ) -> Result {
    var nsRange = NSRange(location: 0, length: 0)
    let result = (range != nil ? body(&nsRange) : body(nil))
