 /// Precondition: at least one of BridgesToKey or BridgesToValue is an
 /// object type, and at least one of Key or Value is a bridged value
 /// type.
-public
-func _dictionaryBridgeFromObjectiveC<Key, Value, BridgesToKey, BridgesToValue>(
-       source: Dictionary<Key, Value>
-     ) -> Dictionary<BridgesToKey, BridgesToValue> {
-  let result: Dictionary<BridgesToKey, BridgesToValue>?
-    = _dictionaryBridgeFromObjectiveCConditional(source);
+public func _dictionaryBridgeFromObjectiveC<
+    Key, Value, BridgesToKey, BridgesToValue
+>(
+    source: Dictionary<Key, Value>
+) -> Dictionary<BridgesToKey, BridgesToValue> {
+  let result: Dictionary<BridgesToKey, BridgesToValue>? =
+      _dictionaryBridgeFromObjectiveCConditional(source);
   _precondition(result, "dictionary cannot be bridged from Objective-C")
   return result!
 }

/// Precondition: at least one of BridgesToKey or BridgesToValue is an
/// object type, and at least one of Key or Value is a bridged value
/// type.
public
func _dictionaryBridgeFromObjectiveCConditional<Key, Value, BridgesToKey, 
                                                BridgesToValue>(
       source: Dictionary<Key, Value>
     ) -> Dictionary<BridgesToKey, BridgesToValue>? {
  _sanityCheck(_isBridgedVerbatimToObjectiveC(Key.self) ||
               _isBridgedVerbatimToObjectiveC(Value.self))
  _sanityCheck(!_isBridgedVerbatimToObjectiveC(BridgesToKey.self) ||
               !_isBridgedVerbatimToObjectiveC(BridgesToValue.self))

  let keyBridgesDirectly =
      _isBridgedVerbatimToObjectiveC(BridgesToKey.self) == 
          _isBridgedVerbatimToObjectiveC(Key.self)
  let valueBridgesDirectly =
      _isBridgedVerbatimToObjectiveC(BridgesToValue.self) ==

  init(
    objects: ConstUnsafePointer<AnyObject?>,
    forKeys: ConstUnsafePointer<Void>, count: Int)

  var count: Int { get }
  func objectForKey(aKey: AnyObject?) -> AnyObject?
  func keyEnumerator() -> _SwiftNSEnumerator?
