///|
fn main {
  let word = "Straße"
  println("\{word}: upper \{@moonucd.upper(word)}, fold \{@moonucd.fold(word)}")
  println("ΟΔΟΣ lowered: \{@moonucd.lower("ΟΔΟΣ")}")
  for ch in ['A', 'Dž', '٣', '中', ' ', '€'] {
    let num = match @moonucd.numeric(ch) {
      Some(Decimal) => ", decimal digit"
      Some(_) => ", numeric"
      None => ""
    }
    let alpha = if @moonucd.has(ch, Alphabetic) { ", alphabetic" } else { "" }
    println("\{ch.escape()}: \{@moonucd.category(ch)}\{alpha}\{num}")
  }
  let digits = @moonucd.Nd.ranges()
  let (lo, hi) = digits[0]
  println("decimal digits in \{digits.length()} ranges, the first \{lo}..\{hi}")
  println("K folds with \{@moonucd.fold_orbit('K').length()} characters")
  println("Unicode \{@moonucd.version()}")
}