anchor.diff:  
     /// 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
  
positive.code: 
    /// Returns a stream whose elements are computed using the given job and
    /// initial state as with `foldJob`.
    val scanJob: ('s -> 'x -> #Job<'s>) -> 's -> Stream<'x> -> Stream<'s>
  
    /// Returns a stream whose elements are computed using the given function and
  
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
  