anchor.diff:      member x.RemoveStats (f : FrameStatistics) = 
           frameStatistics <- frameStatistics - f
   
  -    abstract member CreateProgram : objects : aset<list<uint64> * PreparedRenderObject> -> IAdaptiveProgram<unit>
  -
  +    abstract member Init : unit -> unit
  +    default x.Init() = ()
  +    abstract member AdjustStatistics : FrameStatistics -> FrameStatistics
  +    default x.AdjustStatistics a = a
   
       override x.InputChanged(o : IAdaptiveObject) =
           match o with
  
positive.code: 
  
  type NewRenderTask(objects : aset<IRenderObject>, manager : ResourceManager, fboSignature : IFramebufferSignature, config : BackendConfiguration) =
      inherit OptimizedRenderTask(
          objects,
          manager,
          fboSignature, 
          config
      )
  
      let instructionToCall (i : Instruction) : NativeCall =
          let compiled = ExecutionContext.compile i
          compiled.functionPointer, compiled.args
   
      let compileDelta (this : NewRenderTask) (left : Option<PreparedRenderObject>) (right : PreparedRenderObject) =
          
          let code, createStats =
  
negative.code:     // TODO: find a way to destroy sortKeys appropriately without using ConditionalWeakTable
      let preparedObjects = objects |> ASet.mapUse prepareRenderObject |> ASet.map (fun prep -> createSortKey prep, prep)
  
      let mutable hasProgram = false
      let mutable program = Unchecked.defaultof<_> // ( this.CreateProgram preparedObjects)
  
      let executionTime = System.Diagnostics.Stopwatch()
  
      member x.SetHandler (handler : unit -> FragmentHandler<unit, PreparedRenderObject, Instruction, 'a>) =
  //        let handlerWithStats () =
  //            let baseHandler = handler()
  //            {
  //                baseHandler with
  //                    compileDelta = fun l r ->
  //                        let code = baseHandler.compileDelta l r
  //                        code
  //            }
          
          hasProgram <- true
          program <- preparedObjects |> AdaptiveProgram.custom Comparer.Default handler
  
      member x.CurrentContext =
          currentContext :> IMod<_>
  