anchor.diff:      match e.Key with
         | Key.Escape -> base.Close()
         | Key.Right ->
  -        if not pressed then
  +        if not keyPressed then
             try
               Simulator.advance 0.016671 // 30fps.
               refresh_drawables ()
  -            pressed <- true
  +            keyPressed <- true
             with
               | exn ->
                 printfn "Exception! %A" exn.Message
  
positive.code:   let mutable model_view_location = 0
    let mutable vertex_location = 0 // allow VAOs to set their own matrix transform.
  
    let mutable time = 0.0f
    let mutable pressed = false // don't rush through the simulation.
  
    let eye = Vector3(0.0f, 0.0f, -400.0f)
  
    // drawables.
  
negative.code: 
    override o.OnKeyUp e =
      match e.Key with
        | Key.Right -> keyPressed <- false
        | _ -> ()
  
    override o.OnRenderFrame(e) =
      GL.Clear(ClearBufferMask.ColorBufferBit ||| ClearBufferMask.DepthBufferBit)
  
      if base.Mouse.[MouseButton.Left] then
        let angle = (float32 base.Mouse.X / float32 base.Width) - 0.5f
        let squared = if angle >= 0.0f then angle * angle else - (angle * angle)
        rotation <- rotation * Matrix4.CreateRotationY(squared)
        let mutable lookat = rotation * Matrix4.LookAt(eye, Vector3.Zero, Vector3.UnitY)
        GL.UniformMatrix4(model_view_location, false, &lookat)
  
      try
        Simulator.advance e.Time
  