anchor.diff:                  t.ContinueWith (continuation, cancellationToken, TaskContinuationOptions.ExecuteSynchronously, TaskScheduler.Default) |> ignore)
               tcs.Task
   
  -
  +    #endif
       type Async<'t> with
   
           /// Combine all asyncs in one, chaining them in sequence order.
  
positive.code:     /// Returns the union of two maps, preferring values from the first in case of duplicate keys.
      let union (source: Map<'Key, 'T>) (altSource: Map<'Key, 'T>) = unionWith (fun x _ -> x) source altSource
  
      /// Returns the intersection of two maps, using the combiner function for duplicate keys.
      let intersectWith combiner (source1:Map<'Key, 'T>) (source2:Map<'Key, 'T>) =
          Enumerable
  
negative.code:         for KeyValue(k, v') in source2 do d.[k] <- match d.TryGetValue k with true, v -> f.Invoke (v, v') | _ -> v'
          d :> IReadOnlyDictionary<'Key,'Value>
  
      #if FABLE_COMPILER
      #else
      /// Returns the union of two dictionaries, preferring values from the first in case of duplicate keys.
      let union (source: IReadOnlyDictionary<'Key, 'T>) (altSource: IReadOnlyDictionary<'Key, 'T>) = 
          Enumerable
  