 	static let damp = UInt32(700)
 	static let initialBias = UInt32(72)
 	static let initialN = UInt32(0x80)
-	static let delimiter: Character = "-"
+	static let delimiter: UnicodeScalar = "-"
 
 	static func decodeDigit(_ cp: UInt32) -> UInt32 {
 		return cp &- 48 < 10 ? cp &- 22 : cp &- 65 < 26 ? cp &- 65 :

		var h: UInt32 = outLen

		if b > 0 {
			result.append(Punycode.delimiter)
		}

		// Main encoding loop:

		var i: UInt32 = 0
		var bias = Punycode.initialBias

		let b = scalars.lastIndex(of: "-") ?? scalars.startIndex

		for scalar in scalars[..<b] {
			if !scalar.isASCII {
				return nil // bad input
			}
