anchor.diff:          // draw exterior walls
           g.lineStyle(wallWidth,wallColor).moveTo(0.,halfWall).lineTo(w,halfWall).moveTo(halfWall,0.).lineTo(halfWall,h)
             .moveTo(0.,h-halfWall).lineTo(w,h-halfWall).moveTo(w-halfWall,0.).lineTo(w-halfWall,h).finish
  +        // draw goal as blue X
  +        let left, top =
  +          match model.goal with
  +          | (x,y) -> toX x, toY y
  +        g.lineStyle(5., float 0x0011FF)
  +          .moveTo(left, top)
  +          .lineTo(left + cellWidth, top + cellHeight)
  +          .moveTo(left + cellWidth, top)
  +          .lineTo(left, top + cellHeight)
  +          .finish
  +
           // Also, draw the current position in red
           let left, top =
             match model.currentPosition with
  
positive.code:     node <- node'
    maze
  
  let recursiveBacktracker width height ()=
    let maze = Maze.create2D width height
    maze
  
  let eventsFor (maze: Maze.data) n =
    let r = new Random()
    let table = [|
  
negative.code:   R.div [ClassName "shell"] [
      R.div [] [
        R.div [] [
          R.h2 [] [R.str "Use the arrow keys to move around the dungeon until you find the blue X. The faster you find it, the more points you get. Watch out for monsters!"]
          ]
        R.h4 [] [R.str (sprintf "Points: %d      Steps: %d" model.points model.steps)]
        R.form [] [
          R.label [HtmlFor "algorithmSelector"] [R.str "Maze generation algorithm"]
          R.select [Id "algorithmSelector"; ValueStr (Algorithm.Render model.algorithm); OnSelect(fun e -> debugmenow e); OnChange(fun e -> dispatch <| SwitchAlgorithm((((e.target |> unbox<obj>)?value) |> unbox string |> Algorithm.Parse)))] (
  