anchor.diff:                                              dataManager.Enq b.Value)
                                   else 
                                       isDataEnd := true
  -                                    //this.Die()
                           if inbox.CurrentQueueLength > 0
                           then
                               let! msg = inbox.Receive()
                               match msg with
                               | Die ch ->
  -                                //reader.Die()
                                   dataManager.Die()                                
                                   workers |> Array.iter (fun w -> w.Die())
                                   match postprocessor with Some p -> p.Die() | None -> ()
  
positive.code: let rows = 1100
  let columns = 1100
  
  type Master<'d,'r,'fr>((*config:MasterConfig,*) workers:array<Worker<'d,'r>>, fill: 'd -> Option<'d>, bufs:ResizeArray<'d>, postProcessF:Option<'r->'fr>) 
      as this =        
      
      let isDataEnd = ref false
      let reader = new Reader<_>(fill)
  
negative.code:     let dataToProcess = new System.Collections.Concurrent.ConcurrentQueue<Option<'d>>()
      let dataToFill = new System.Collections.Generic.Queue<_>()
      let dataIsEnd = ref false
      let inner =
          MailboxProcessor.Start(fun inbox ->
              let rec loop n =
                  async { 
                          let cnt = ref 3
                          while dataToFill.Count > 0 && !cnt > 0 do
                              decr cnt                            
                              let b = dataToFill.Dequeue()
                              if not <| !dataIsEnd
                              then readers.[0].Read(b
                                  , fun a ->                                     
                                      dataToProcess.Enqueue a
  