///|
fn main raise {
  let grid = @frontierlab.GridMap::new(width=6, height=4)
    .with_obstacle(@frontierlab.Position::new(x=1, y=0))
    .with_obstacle(@frontierlab.Position::new(x=1, y=1))
    .with_obstacle(@frontierlab.Position::new(x=3, y=1))
    .with_obstacle(@frontierlab.Position::new(x=3, y=2))
  let start = @frontierlab.Position::new(x=0, y=0)
  let goal = @frontierlab.Position::new(x=5, y=3)
  let trace = @frontierlab.bfs_trace(grid, start~, goal~)
  println(@frontierlab.export_ascii(grid, start~, goal~, trace~))
}