///|
fn char_at(text : String, index : Int) -> Int {
  text[index].to_int()
}

///|
fn find_char(text : String, needle : Int, start : Int) -> Int {
  for i in start.. Int {
  if needle == "" {
    return start
  }
  guard needle.length() <= text.length() else { -1 }
  let limit = text.length() - needle.length()
  for i in start..<=limit {
    let mut matched = true
    for j in 0.. Bool {
  find_char(text, needle, 0) >= 0
}

///|
fn has_prefix_at(text : String, prefix : String, start : Int) -> Bool {
  guard start >= 0 && start + prefix.length() <= text.length() else { false }
  for i in 0..