anchor.diff:      // Returns the intersection of two maps, preferring values from the first in case of duplicate keys.
       let intersect (source1:Map<'Key, 'T>) (source2:Map<'Key, 'T>) = 
           intersectWith (fun a _ -> a) source1 source2
  -
  +    #endif
   /// Additional operations on IDictionary<'Key, 'Value>
   [<RequireQualifiedAccess>]
   module Dict =
       open System.Collections.Generic
       open System.Collections.ObjectModel
  +
  +    #if FABLE_COMPILER
  +    #else
       open System.Linq
  +    
   
       let toIReadOnlyDictionary source = ReadOnlyDictionary source :> IReadOnlyDictionary<_,_>
  +    #endif
   
       let tryGetValue k (dct: IDictionary<'Key, 'Value>) =
           match dct.TryGetValue k with
  
positive.code: module IReadOnlyList =
      open System.Collections.Generic
  
      let ofArray (source: _ array) = IList.toIReadOnlyList source
      let toArray (source: IReadOnlyList<_>) = Array.ofSeq source
  
      /// Returns a new IReadOnlyList from a given IReadOnlyList, with replaced binding for index.
      let add i value (source: IReadOnlyList<_>) =
          let setNth i v (source: _ array) = source.[i] <- v; source
          if 0 <= i && i < source.Count then
              source |> Array.ofSeq |> setNth i value |> ofArray |> Some
          else None
  
      let tryItem i (source: IReadOnlyList<_>) =
          if 0 <= i && i < source.Count then Some source.[i]
  
negative.code:                 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.
  