anchor.diff:      /// a body specified as the argument. The returnd async sequence repeatedly 
       /// sends 'Get' message to the agent to get the next element. The observable
       /// sends 'Put' message to the agent (as new inputs are generated).
  -    let internal ofObservableUsingAgent (input : System.IObservable<'T>) f =
  +    let internal ofObservableUsingAgent (input : System.IObservable<'T>) f : AsyncSeq<'T> =
  +        // Preconditions
  +        checkNonNull "input" input
  +
           asyncSeq {
           use agent = AutoCancelAgent.Start (f)
           use d =
  
positive.code:                 
                  // Process matching calls from buffers
                  while buffer.Count > 0 && replies.Count > 0 do
                      replies.Dequeue().Reply(buffer.Dequeue ())
              }
  
      /// Converts observable to an asynchronous sequence. Values that are produced
  
negative.code:     /// from the input sequence and its predecessor. Empty sequence is returned for
      /// singleton input sequence.
      [<CompiledName("Pairwise")>]
      let rec pairwise (input : AsyncSeq<'T>) : AsyncSeq<'T * 'T> =
          // Preconditions
          checkNonNull "input" input
  
          asyncSeq {
          let! v = input
          match v with
  