///|
fn pow_int(base : Int, exp : Int) -> Int {
  let mut result = 1
  for _ in 0.. Int {
  let mut digits = 0
  let mut cap = 1
  while cap < 65536 {
    cap *= dict_length
    digits += 1
  }
  digits
}

///|
fn dict_index_of(dict : String, ch : String) -> Int? {
  for i in 0.. String {
  if dict.length() < 2 {
    ""
  } else {
    let compressed = compress(uncompressed)
    let chars_per = chars_per_unicode_char(dict.length())
    let out = StringBuilder::new(size_hint=compressed.length() * chars_per)
    for i in 0.. String? {
  if compressed == "" {
    None
  } else if dict.length() < 2 {
    None
  } else {
    let chars_per = chars_per_unicode_char(dict.length())
    if compressed.length() % chars_per != 0 {
      None
    } else {
      let out = StringBuilder::new(size_hint=compressed.length() / chars_per)
      for i in 0..<(compressed.length() / chars_per) {
        let mut current = 0
        for j in 0.. v
            None => return None
          }
          current += index * pow_int(dict.length(), chars_per - 1 - j)
        }
        out.write_string(char_from_code_unit(current))
      }
      decompress(out.to_string())
    }
  }
}