     }
     
     
-    /// Unicode block name
+    /// Unicode block name.
     var blockName: String? {
         
         return self.value.blockName
     }
     
     
-    /// Localized and sanitized unicode block name
+    /// Localized and sanitized unicode block name.
     var localizedBlockName: String? {
         
         // -> This is actually a dirty workaround to make the block name the same as the Apple's block naming rule.

    }
    
    
    /// if character becomes a surrogate pair in UTF-16
    var isSurrogatePair: Bool {
        
        return (UTF16.width(self) == 2)
    }
    
    
    /// Unicode name
    var name: String? {
        
        return self.properties.nameAlias


extension Unicode.Scalar {
    
    /// Code point string in format like `U+000F`.
    var codePoint: String {
        
        return String(format: "U+%04tX", self.value)
    }
    
    
    /// Code point pair in UTF-16 surrogate pair.
    var surrogateCodePoints: [String]? {
        
        guard self.isSurrogatePair else { return nil }
