anchor.diff:  
     /// Returns a stream that produces results whenever the given stream produces
     /// an element and the given job returns `Some` result from that element.
  +#if DOC
  +  ///
  +  /// Reference implementation:
  +  ///
  +  ///> let rec chooseJob f xs =
  +  ///>   xs >>=* function Nil -> nil
  +  ///>                  | Cons (x, xs) ->
  +  ///>                    f x >>=? function None -> chooseJob f xs :> Alt<_>
  +  ///>                                    | Some y -> cons y (chooseJob f xs)
  +#endif
     val chooseJob: ('x -> #Job<option<'y>>) -> Stream<'x> -> Stream<'y>
   
     /// Returns a stream that produces results whenever the given stream produces
  
positive.code: 
    /// Returns an infinite stream of repeated applications of the given job to
    /// the given initial value.
    val iterateJob: ('x -> #Job<'x>) -> 'x -> Stream<'x>
  
    /// Returns an infinite stream of repeated applications of the given function
  
negative.code:   /// given a channel, `xCh`, a stream can be created, `indefinitely xCh`,
    /// through which all the values given on the channel can be observed.  See
    /// also: `values`.
  #if DOC
    ///
    /// Reference implementation:
    ///
    ///> let rec indefinitely xJ = xJ >>=* fun x -> cons x (indefinitely xJ)
  #endif
    val indefinitely: Job<'x> -> Stream<'x>
  
    /// `once xJ` is equivalent to `indefinitely xJ |> take 1`.
    val once: Job<'x> -> Stream<'x>
  
    /// Returns a stream that contains the elements generated by the given job.
  #if DOC
    ///
    /// Reference implementation:
    ///
    ///> let rec unfoldJob f s =
    ///>   f s >>=* function None -> nil
    ///>                   | Some (x, s) -> cons x (unfoldJob f s)
  #endif
    val unfoldJob: ('s -> #Job<option<'x * 's>>) -> 's -> Stream<'x>
  
    /// Returns a stream that contains the elements generated by the given
  