anchor.diff:                                    maxParallelism folder state (s:_ seq) =
       let mutable state = state
       let enumerator = s.GetEnumerator()
  +
  +    let safePost (mb:MailboxProcessor<_>) msg =
  +      try
  +        if not ct.IsCancellationRequested then mb.Post msg
  +      with | :? ObjectDisposedException -> ()
  +      
       use mb =
         MailboxProcessor.Start((fun mb ->
           let rec loop running =
  
positive.code:                 Async.Start(async {
                    try
                      let! r = next
                      Some r |> mb.Post
                    finally
                      mb.Post None
                  }, ct.Token)
                  return! loop (running+1)
                elif running = 0 then
  
negative.code: 
      let rec start n =
        if n > 0 then
          safePost mb None
          start (n-1)
  
      start maxParallelism
  