 extension Unicode.UTF16 : UnicodeEncoding {
   public typealias EncodedScalar = _UIntBuffer<UInt32, UInt16>
 
-  public static var encodedReplacementScalar : EncodedScalar {
-    fatalError()
+  public static var encodedReplacementCharacter : EncodedScalar {
+    return EncodedScalar(_storage: 0xFFFD, _bitCount: 16)
   }
 
   public static func _isScalar(_ x: CodeUnit) -> Bool  {

  
  public struct ForwardDecoder {
    public typealias Buffer = _UIntBuffer<UInt32, UInt16>
    public static var replacement : Encoding.EncodedScalar {
      return Encoding.EncodedScalar(_storage: 0xFFFD, _bitCount: 16)
    }
    public init() { buffer = Buffer() }
    public var buffer: Buffer
  }
  
  public struct ReverseDecoder {
    public typealias Buffer = _UIntBuffer<UInt32, UInt16>
    public static var replacement : Encoding.EncodedScalar {
      return Encoding.EncodedScalar(_storage: 0xFFFD, _bitCount: 16)
    }
    public init() { buffer = Buffer() }
    public var buffer: Buffer
  }


public protocol UnicodeDecoder {
  associatedtype Encoding : _UnicodeEncodingBase
  
  init()

