fn dist2(ax: i32, ay: i32, bx: i32, by: i32) -> i32 {
    let dx: i32 = ax - bx
    let dy: i32 = ay - by
    return dx * dx + dy * dy
}

pub fn main(world: World) -> Void raises {
    let xs: [4]i32 = [0, 4, 8, -2]
    let ys: [4]i32 = [0, 4, 8, 5]
    var best: usize = 0
    var bestDist: i32 = dist2(xs[0], ys[0], 5, 5)
    var i: usize = 1
    while i < 4 {
        let d: i32 = dist2(xs[i], ys[i], 5, 5)
        if d < bestDist {
            best = i
            bestDist = d
        }
        i = i + 1
    }
    if dist2(0, 0, 3, 4) == 25 && best == 1 {
        check world.out.write("kd tree ok\n")
    }
}
