anchor.diff:  	 let b <- sinks[j].finish();
   	 let c = dotprodCount-fromInteger(kk);
   	 int jint = fromInteger(j);
  -	 if (verbose1) $display($format(fshow(cycles)+fshow("    finishSink c")+fshow(c)+fshow(" j=")+fshow(jint)));
  +	 if (timing || verbose1) $display($format(fshow(cycles)+fshow("    finishSink c")+fshow(c)+fshow(" j=")+fshow(jint)));
   	 dotprodCount <= c;
   	 if (c == 0) begin
   	    running <= False;
  
positive.code: `endif
     // perhaps memreadengine could do the labeling
     Reg#(Bit#(ObjectOffsetSize)) countReg <- mkReg(0);
     Reg#(Bool) firstReg <- mkReg(True);
     Reg#(Bool) lastReg  <- mkReg(False);
     method Action start(ObjectPointer h, Bit#(ObjectOffsetSize) a, Bit#(ObjectOffsetSize) l, UInt#(32) tag);
  `ifdef TAGGED_TOKENS
        tagFifo.enq(tag);
  `endif
        vs.start(h,a,l);
        countReg <= l;
        firstReg <= True;
        lastReg <= (l == 1);
     endmethod
     method ActionValue#(Bool) finish;
  `ifdef TAGGED_TOKENS
        tagFifo.deq;
        col <= 0;
  `endif      
        let rv <- vs.finish;
        return rv;
     endmethod
  
negative.code:       rule finishSourceB;
  	 UInt#(TLog#(K)) in = fromInteger(k);
  	 int kint = fromInteger(k);
  	 if (timing || verbose || verbose1) $display($format(fshow(cycles)+fshow("    sourceB[")+fshow(kint)+fshow("].finish")));
  	 let b <- sourceB[k].finish();
        endrule
     end
  