anchor.diff:  
     Conveyor<F, O> filter(bool f(O o)) => pipe(Pipe.filter(f));
   
  -  Conveyor<F, Unit> sink(F f(O o)) => flatMap((o) => Source.eval(f(o))).drain().map(constF(unit));
  +  Conveyor<F, Unit> sink(F f(O o)) => flatMap(composeF(Source.eval_, f));
   
     Conveyor<F, dynamic/*=O2*/> fold/*<O2>*/(/*=O2*/ z, Function2/*<O2, O, O2>*/ f) => pipe(Pipe.scan(z, f)).lastOr(z);
   
  
positive.code: 
    Conveyor<F, O> lastOr(O o) =>
        interpret((h, t) => t.lastOr(h),
            (req, recv) => await(req, (ea) => recv(ea).lastOr(o)),
            (err) => err == End ? emit(o) : halt(err));
  
    static Conveyor/*<F, O>*/ Try/*<F, O>*/(Conveyor/*<F, O>*/ p()) {
      try {
  
negative.code: class Nowhere {}
  
  class Source {
    static Conveyor/*<F, A>*/ eval/*<F, A>*/(/*=F*/ fa) =>
        Conveyor.consume(fa, (ea) => ea.fold(Conveyor.halt, Conveyor.produce));
  
    static Conveyor/*<F, A>*/ eval_/*<F, A>*/(/*=F*/ fa) =>
        Conveyor.consume(fa, (ea) => ea.fold(Conveyor.halt, (_) => Conveyor.halt(Conveyor.End)));
  
    static Conveyor/*<F, O>*/ resource/*<F, R, O>*/(/*=F*/ acquire, Conveyor<dynamic/*=F*/, dynamic/*=O*/> use(/*=R*/ r), Conveyor<dynamic/*=F*/, dynamic/*=O*/> release(/*=R*/ r)) =>
        eval/*<F, R>*/(acquire).bind((r) => use(r).onComplete(() => release(r)));
  