anchor.diff:      [<Literal>]
       let baseText = "Aardvark rocks \\o/ - OpenGL GameWindow"
   
  -type GameWindow(runtime : Runtime, enableDebug : bool, samples : int) as this =
  +type GameWindow(runtime : Runtime, enableDebug : bool, samples : int, graphicsMode : Graphics.GraphicsMode) as this =
       inherit OpenTK.GameWindow(
           1024,
           768,
  -        Graphics.GraphicsMode(
  -            OpenTK.Graphics.ColorFormat(Config.BitsPerPixel), 
  -            Config.DepthBits, 
  -            Config.StencilBits, 
  -            samples, 
  -            OpenTK.Graphics.ColorFormat.Empty,
  -            Config.Buffers, 
  -            false
  -        ),
  +        graphicsMode,
           DefaultText.baseText,
           GameWindowFlags.Default,
           DisplayDevice.Default,
  
positive.code:         member x.Keyboard = keyboard :> IKeyboard
  
      interface IRenderWindow with
          member x.Run() = x.Run()
negative.code:                 if size <> sizes.Value then
                      transact (fun () -> Mod.change sizes size)
  
                  if graphicsMode.Stereo then
                      let outputDesc, colorTex = 
                          match stereoFramebuffer with    
                          | Some (outputDesc, _, c, _) when c.Size.XY = size -> 
                              outputDesc, c
                          | _ -> 
                              match stereoFramebuffer with
                              | Some (_, f, c, d) -> 
                                  ctx.Delete f
                                  ctx.Delete c
                                  ctx.Delete d
                              | _ -> ()
                              let c = ctx.CreateTexture(V3i(size,1), TextureDimension.Texture2D, TextureFormat.Rgba8, 2, 1, samples)
                              let d = ctx.CreateTexture(V3i(size,1), TextureDimension.Texture2D, TextureFormat.Depth24Stencil8, 2, 1, samples)
                              let f = 
                                  runtime.CreateFramebuffer(
                                      fboSignature,
                                      [   
                                          DefaultSemantic.Colors, c.[TextureAspect.Color,0,*] :> IFramebufferOutput
                                          DefaultSemantic.Depth,  d.[TextureAspect.Depth,0,*] :> IFramebufferOutput
                                      ]
                                  ) |> unbox<Framebuffer>
                              let o = OutputDescription.ofFramebuffer f
                              stereoFramebuffer <- Some (o,f,c,d)
                              o, c
                      
                      clearTask.Run(AdaptiveToken.Top, RenderToken.Empty, outputDesc)
                      task.Run(AdaptiveToken.Top, RenderToken.Empty, outputDesc)
  
                      let fSrc = GL.GenFramebuffer()
                      GL.BindFramebuffer(FramebufferTarget.DrawFramebuffer, 0)
                      GL.BindFramebuffer(FramebufferTarget.ReadFramebuffer, fSrc)
                      
                      GL.FramebufferTextureLayer(FramebufferTarget.ReadFramebuffer, FramebufferAttachment.ColorAttachment0, colorTex.Handle, 0, 0)
                      GL.DrawBuffer(DrawBufferMode.BackLeft)
                      GL.BlitFramebuffer(0, 0, colorTex.Size.X, colorTex.Size.Y, 0, 0, colorTex.Size.X, colorTex.Size.Y, ClearBufferMask.ColorBufferBit, BlitFramebufferFilter.Nearest)
  
                      GL.FramebufferTextureLayer(FramebufferTarget.ReadFramebuffer, FramebufferAttachment.ColorAttachment0, colorTex.Handle, 0, 1)
                      GL.DrawBuffer(DrawBufferMode.BackRight)
                      GL.BlitFramebuffer(0, 0, colorTex.Size.X, colorTex.Size.Y, 0, 0, colorTex.Size.X, colorTex.Size.Y, ClearBufferMask.ColorBufferBit, BlitFramebufferFilter.Nearest)
  
                      GL.BindFramebuffer(FramebufferTarget.ReadFramebuffer, 0)
                      GL.DeleteFramebuffer(fSrc)
  
                  else
                      defaultFramebuffer.Size <- V2i(x.ClientSize.Width, x.ClientSize.Height)
                      defaultOutput <- { defaultOutput with viewport = Box2i(V2i.OO, defaultFramebuffer.Size - V2i.II) }
  
                      GL.ColorMask(true, true, true, true)
                      GL.DepthMask(true)
                      GL.Viewport(0,0,x.ClientSize.Width, x.ClientSize.Height)
                      GL.ClearColor(0.0f, 0.0f, 0.0f, 1.0f)
                      GL.ClearDepth(1.0)
                      GL.Clear(ClearBufferMask.ColorBufferBit ||| ClearBufferMask.DepthBufferBit ||| ClearBufferMask.StencilBufferBit)
  
                      let desc = OutputDescription.ofFramebuffer defaultFramebuffer
                      task.Run(AdaptiveToken.Top, RenderToken.Empty, defaultOutput)
                          
  
                  x.SwapBuffers()
  