 
 extension Character.UnicodeScalarView : Sequence {
   public func makeIterator() -> Iterator {
-    return Iterator(_base: _base.makeIterator())
+    return Iterator(_base: IndexingIterator(_elements: self))
   }
 }
 
 extension Character.UnicodeScalarView {
   public struct Index {
-    internal let _base: String.UnicodeScalarView.Index
+    internal let _encodedOffset: Int
+    internal let _scalar: Unicode.UTF16.EncodedScalar
+    internal let _stride: UInt8
   }
 }
 

    lhs: Character.UnicodeScalarView.Index,
    rhs: Character.UnicodeScalarView.Index
  ) -> Bool {
    return lhs._base == rhs._base
  }
}


//===----------------------------------------------------------------------===//
extension Character {
  public struct UnicodeScalarView {
    internal let _base: Character
  }
  
  public var unicodeScalars : UnicodeScalarView {
    return UnicodeScalarView(_base: self)
  }
}

extension Character.UnicodeScalarView {
  public struct Iterator {
    internal var _base: IndexingIterator<Character.UnicodeScalarView>
  }
}
    
