///|
fn Char::is_emoji(char : Char) -> Bool {
char is ('\u{2600}'..<='\u{27bf}' | '\u{1f000}'..<='\u{1faff}')
}
///|
fn Char::is_zero_width(char : Char) -> Bool {
char
is ('\u{0300}'..<='\u{036f}'
| '\u{1ab0}'..<='\u{1aff}'
| '\u{1dc0}'..<='\u{1dff}'
| '\u{200b}'..<='\u{200d}'
| '\u{2060}'
| '\u{20d0}'..<='\u{20ff}'
| '\u{fe00}'..<='\u{fe0f}'
| '\u{fe20}'..<='\u{fe2f}'
| '\u{e0100}'..<='\u{e01ef}')
}
///|
fn Char::is_wide(char : Char) -> Bool {
char
is ('\u{1100}'..<='\u{11ff}'
| '\u{2e80}'..<='\u{9fff}'
| '\u{a000}'..<='\u{a4cf}'
| '\u{ac00}'..<='\u{d7af}'
| '\u{f900}'..<='\u{faff}'
| '\u{fe10}'..<='\u{fe6f}'
| '\u{ff01}'..<='\u{ff60}'
| '\u{ffe0}'..<='\u{ffe6}'
| '\u{1b000}'..<='\u{1b12f}'
| '\u{20000}'..<='\u{2fa1f}'
| '\u{30000}'..<='\u{3134f}')
}