anchor.diff:                  Interlocked.Decrement(progress.activeNodeCount) |> ignore
               else Log.line "could not remove calls"
   
  +        let removeFromWorkingSet n = 
  +            if node.Config.boundingBoxSurface.IsSome  then
  +                lock workingSet (fun () -> 
  +                    transact (fun () -> workingSet.Remove n |> ignore)
  +                )
  +
           member x.WorkingSet = 
  -            workingSets :> aset<_>
  +            workingSet :> aset<_>
   
           member x.Activate() =
                   
  
positive.code:         /// the time interval for the pruning process in ms
          pruneInterval : int
  
          /// optional surface for bounding boxes of cells that are not loaded yet
          /// shader vertex must have ZZZInstancedTrafo semantic
          boundingBoxSurface : Option<IMod<ISurface>>
      }
  
  [<AutoOpen>]
  
negative.code:                 let s = { s with onCancel = undo::s.onCancel }
                  s, Result ()
              )
  
  //        let finalize (finallyActions : unit -> unit) : Stepwise<'a> =
  //            Continue (fun s ->
  //                let s = { s with finallyActions = finallyActions::s.finallyActions }
  //                s, Result ()
  //            )
  
          let step (c : Stepwise<'a>) (s : StepState) =
              match c with
  