anchor.diff:          bucket.Transforms.Add transformComp
           bucket.Positions.Add position
           bucket.Uvs.Add uv
  -               
  +        bucket.Colors.Add color
       
  -
  +    member this.ForEach f =
  +        this.Lookup
  +        |> Seq.iter (fun pair ->
  +            let programId = pair.Key
  +            let textureLookup = pair.Value
  +
  +            textureLookup
  +            |> Seq.iter (fun pair ->
  +                let textureId = pair.Key
  +                let (texture, bucket) = pair.Value
  +
  +                f programId texture bucket
  +            )
  +        )
           
   
   // Fixme: global
  
positive.code:                         Transforms = ResizeArray ()
                          Positions = ResizeArray ()
                          Uvs = ResizeArray ()
                      }
  
                  textureLookup.Add (textureId, (texture, bucket))
  
negative.code: 
      Renderer.enableDepth ()
  
      let mvp = (projection * view) |> Matrix4x4.Transpose
  
      state.ForEach (fun programId texture bucket ->
  
          Renderer.useProgram programId
  
          let count = bucket.Positions.Count
  
          for i = 0 to count - 1 do
  
              let transformComp = bucket.Transforms.[i]
              let position = bucket.Positions.[i]
              let uv = bucket.Uvs.[i]
              let color = bucket.Colors.[i]
  
              let model = transformComp.Transform
  
              position.TryBufferData () |> ignore
              uv.TryBufferData () |> ignore
  
              let uniformColor = Renderer.getUniformLocation programId "uni_color"
              let uniformProjection = Renderer.getUniformLocation programId "uni_projection"
  
              Renderer.setUniformProjection uniformProjection mvp
  
              position.Bind ()
              Renderer.bindPosition programId
  
              uv.Bind ()
              Renderer.bindUv programId
  
              match texture with
              | Some texture ->
                  Renderer.setTexture programId texture.Id
                  texture.Bind ()
              | _ -> ()
  
              Renderer.setUniformColor uniformColor (Color.FromArgb (255, int color.R, int color.G, int color.B) |> RenderColor.OfColor)
              Renderer.drawTriangles 0 position.Length
      )
  
      Renderer.disableDepth ()
  
      // TODO: To fix wireframe, let's add to our renderstate when to render after the depth buffer.
      entityManager.ForEach<MaterialComponent, WireframeComponent> (fun ent materialComp wireframeComp ->
  
          wireframeComp.Position.TryBufferData () |> ignore
  