anchor.diff:        >>=. Job.tryIn (xs
                         |> iterJob ^ fun x ->
                              let rCh = Ch ()
  -                           inCh *<- (x, rCh) >>=.
  +                           inCh *<- Struct (x, rCh) >>=.
                              resultCh *<+ (rCh :> Job<_>))
                (fun () -> resultCh *<- Job.result Done)
                (Exn >> Job.result >> Ch.give resultCh)
  
positive.code:       delay <| fun () ->
        let inCh = Ch ()
        let resultCh = Ch ()
        inCh >>= fun (x, rCh) ->
            Job.tryInDelay (fun () -> x2yJ x)
              (Value >> Ch.give rCh)
              (Exn >> Ch.give rCh)
  
negative.code:     | Exn of exn
      | Done
  
    type [<Struct>] Struct<'x1, 'x2> (x1: 'x1, x2: 'x2) =
      member t.Get1 = x1
      member t.Get2 = x2
  
    let mapPipelinedJob (degree: int) (x2yJ: 'x -> #Job<'y>) (xs: Stream<'x>) =
      if degree < 1 then
        failwithf "degree must be 1 or greater, given %d" degree
  