     public convenience init(sharedKeySet keyset: Any) { NSUnimplemented() }
 }
 
-extension NSDictionary : ExpressibleByDictionaryLiteral { }
-
-extension NSDictionary : CustomReflectable {
-    public var customMirror: Mirror { NSUnimplemented() }
-}
-
-
-extension NSDictionary : _StructTypeBridgeable {
+extension NSDictionary: CustomReflectable {
+    public var customMirror: Mirror {
+        return Mirror(reflecting: self._storage as [NSObject: AnyObject])
+    }
+}
+
+extension NSDictionary: _StructTypeBridgeable {
     public typealias _StructType = Dictionary<AnyHashable,Any>
     
     public func _bridgeToSwift() -> _StructType {

            _storage[key as! NSObject] = value
        }
    }
    
    public required convenience init?(coder aDecoder: NSCoder) {
        guard aDecoder.allowsKeyedCoding else {
            preconditionFailure("Unkeyed coding is unsupported.")

            return mutableDictionary
        }
        return NSMutableDictionary(objects: self.allValues, forKeys: self.allKeys.map { __SwiftValue.store($0) } )
    }

    open override func isEqual(_ value: Any?) -> Bool {
