anchor.diff:  
     /// Returns a stream whose elements are computed using the given job and
     /// initial state as with `foldJob`.
  +#if DOC
  +  ///
  +  ///> let rec scanJob f s xs =
  +  ///>   cons s (xs >>=* function Nil -> nil
  +  ///>                          | Cons (x, xs) ->
  +  ///>                            f s x >>=? fun s -> scanJob f s xs)
  +#endif
     val scanJob: ('s -> 'x -> #Job<'s>) -> 's -> Stream<'x> -> Stream<'s>
   
     /// Returns a stream whose elements are computed using the given function and
  
positive.code: 
    /// Returns a stream that produces results whenever the given stream produces
    /// an element and the given job returns `Some` result from that element.
    val chooseJob: ('x -> #Job<option<'y>>) -> Stream<'x> -> Stream<'y>
  
    /// Returns a stream that produces results whenever the given stream produces
  
negative.code: 
    /// Returns an infinite stream of repeated applications of the given job to
    /// the given initial value.
  #if DOC
    ///
    /// Reference implementation:
    ///
    ///> let rec iterateJob f x = cons x (f x >>=* iterateJob f)
  #endif
    val iterateJob: ('x -> #Job<'x>) -> 'x -> Stream<'x>
  
    /// Returns an infinite stream of repeated applications of the given function
  