 
   typealias _NativeIndex = _NativeDictionaryIndex<KeyType, ValueType>
   typealias _CocoaIndex = _CocoaDictionaryIndex
-  case _Native(_NativeIndex)
-  case _Cocoa(_CocoaIndex)
+
+  var value: _DictionaryIndexRepresentation<KeyType, ValueType>
+
+  static func _Native(index: _NativeIndex) -> DictionaryIndex {
+    return DictionaryIndex(value: ._Native(index))
+  }
+  static func _Cocoa(index: _CocoaIndex) -> DictionaryIndex {
+    return DictionaryIndex(value: ._Cocoa(index))
+  }
 
   @transparent
   var _guaranteedNative: Bool {

      return ._Native(_nativeIndex.successor())
    }

    switch self {
    case ._Native(let nativeIndex):
      return ._Native(nativeIndex.successor())
    case ._Cocoa(let cocoaIndex):

      return _nativeNext()
    }

    switch state {
    case ._Native(var startIndex, var endIndex):
      return _nativeNext()
    case ._Cocoa(var cocoaGenerator):
