 }
 
 extension Unicode.UTF8.ForwardDecoder : _UTF8Decoder {
+  public typealias Encoding = Unicode.UTF8
   public typealias CodeUnit = UInt8
   public typealias EncodedScalar = Buffer
   

}

extension Unicode.UTF16.ForwardDecoder : _UTF16Decoder {
  public typealias CodeUnit = UInt16
  public typealias EncodedScalar = Buffer
  

}

extension Unicode.UTF8 : UnicodeEncoding {
  public typealias EncodedScalar = _UIntBuffer<UInt32, UInt8>

  public static var encodedReplacementScalar : EncodedScalar {
    fatalError()
  }

  public static func _isScalar(_ x: CodeUnit) -> Bool  { return x & 0x80 == 0 }

  public static func decode(_ content: EncodedScalar) -> UnicodeScalar {
    fatalError()
  }
  
  public struct ForwardDecoder {
    public typealias Buffer = _UIntBuffer<UInt32, UInt8>
    public init() { buffer = Buffer() }
