anchor.diff:                  ]
           )
               
  -
  +    let getChaperone () =
  +        let mutable quad = Unchecked.defaultof<_>
  +        if OpenVR.Chaperone.GetPlayAreaRect(&quad) then
  +            let quad = 
  +                Polygon3d [|
  +                    V3d(quad.vCorners0.v0, quad.vCorners0.v1, quad.vCorners0.v2)
  +                    V3d(quad.vCorners1.v0, quad.vCorners1.v1, quad.vCorners1.v2)
  +                    V3d(quad.vCorners2.v0, quad.vCorners2.v1, quad.vCorners2.v2)
  +                    V3d(quad.vCorners3.v0, quad.vCorners3.v1, quad.vCorners3.v2)
  +                |]
  +            Some quad
  +        else
  +            None
   
       let compositor = OpenVR.Compositor
       let renderPoses = Array.zeroCreate (int OpenVR.k_unMaxTrackedDeviceCount)
  
positive.code:     member x.DesiredSize = desiredSize
  
      member x.Shutdown() =
          isAlive <- false
  
      member x.Info = infos.[0]
  
  
negative.code:     let mutable frameCount = 0
      let mutable statFrameCount = 20
      let evtStatistics = EventSource<VrSystemStats>()
  
      let mutable textures = None
  
      static member EyeIndexSym = sEyeIndex
      static member RCoordSym = sRCoord
  