anchor.diff:    /// Preliminary and subject to change.
     val groupByFun: ('x -> 'k) -> Stream<'x> -> Stream<'k * Stream<'x>> when 'k: equality
   
  -  /// Preliminary and subject to change.
  +  /// Returns a stream of pairs of elements from the given pair of streams.  No
  +  /// elements from either stream are skipped and each element is used only
  +  /// once.  See also: `combineLatest`.
  +#if DOC
  +  ///
  +  /// For example,
  +  ///
  +  ///> zip xs (skip 1 xs)
  +  ///
  +  /// is a stream of consecutive pairs from the stream `xs`.
  +#endif
     val zip: Stream<'x> -> Stream<'y> -> Stream<'x * 'y>
   
     /// Preliminary and subject to change.
  
positive.code:   ///> and merge ls rs = mergeSwap ls rs <|>* mergeSwap rs ls
  #endif
    val merge: Stream<'x> -> Stream<'x> -> Stream<'x>
    /// Preliminary and subject to change.
    val append: Stream<'x> -> Stream<'x> -> Stream<'x>
    /// Preliminary and subject to change.
    val switch: Stream<'x> -> Stream<'x> -> Stream<'x>
  
    /// Preliminary and subject to change.
    val joinWith: (Stream<'x> -> Stream<'y> -> #Stream<'y>) -> Stream<#Stream<'x>> -> Stream<'y>
  
    /// Preliminary and subject to change.
    val mapJoin: (Stream<'y> -> Stream<'z> -> #Stream<'z>) -> ('x -> #Stream<'y>) -> Stream<'x> -> Stream<'z>
  
    /// Preliminary and subject to change.
    val ambMap: ('x -> #Stream<'y>) -> Stream<'x> -> Stream<'y>
    /// Preliminary and subject to change.
    val mergeMap: ('x -> #Stream<'y>) -> Stream<'x> -> Stream<'y>
    /// Preliminary and subject to change.
    val appendMap: ('x -> #Stream<'y>) -> Stream<'x> -> Stream<'y>
    /// Preliminary and subject to change.
    val switchMap: ('x -> #Stream<'y>) -> Stream<'x> -> Stream<'y>
  
    // Skipping and taking
  
    /// Preliminary and subject to change.
    val skip: int -> Stream<'x> -> Stream<'x>
    /// Preliminary and subject to change.
    val take: int -> Stream<'x> -> Stream<'x>
  
    /// Preliminary and subject to change.
  
negative.code: 
    // Joining streams
  
    /// Of the two given streams, returns the stream that first produces an
    /// element.  See also: `ambMap`.
    val amb: Stream<'x> -> Stream<'x> -> Stream<'x>
  
    /// Returns a stream that produces elements from both of the given streams so
    /// that elements from the streams are interleaved non-deterministically in
    /// the returned stream.  See also: `mergeMap`.
  #if DOC
    ///
    /// Reference implementation:
  