anchor.diff:              result
   
       type [<NoEquality; NoComparison>] private Pool =
  -        { mutable ContextCurrent : int
  +        { mutable ContextIndex : int
             Contexts : Context List
             SpriteMax : int }
   
           static member create spriteMax prealloc =
               let contexts = Seq.init (max 1 prealloc) (fun _ -> OpenGL.Hl.Assert (Context.create spriteMax)) |> List
  -            { ContextCurrent = 0
  +            { ContextIndex = 0
                 Contexts = contexts
                 SpriteMax = spriteMax }
   
  
positive.code:             for context in pool.Contexts do
                  Context.destroy context
              pool.Contexts.Clear ()
              pool.ContextCurrent <- 0
  
          static member next pool =
              pool.ContextCurrent <- inc pool.ContextCurrent
  
          static member reset pool =
              pool.ContextCurrent <- 0
  
          member this.Current =
              while this.ContextCurrent >= this.Contexts.Count do this.Contexts.Add (Context.create this.SpriteMax)
              this.Contexts.[this.ContextCurrent]
  
      type [<StructuralEquality; NoComparison>] private State =
          { BlendingFactorSrc : OpenGL.BlendingFactor
  
negative.code:         OpenGL.Hl.Assert ()
  
          // next pool
          env.SpriteIndex <- 0
          Pool.next env.Pool
  
      let CreateEnv () =
          let (texUniform, shader) = CreateShader ()
  