anchor.diff:  
   interface IteratorWithContext#(type a, type c);
      interface PipeOut#(a) pipe;
  +   method a count();
      method Bool isFirst();
      method Bool isLast();
      method Action start(IteratorConfig#(a) cfg, c ctxt);
  
positive.code:    method Action start(IteratorConfig#(a) cfg);
        iter.start(cfg, ?);
     endmethod
     method isFirst = iter.isFirst;
     method isLast = iter.isLast;
  endmodule
  
negative.code:       endmethod
        method Action deq if (!idle);
  	 let next_x = x + xstep;
  	 countReg <= countReg + 1;
  	 x <= x + xstep;
  	 first <= False;
  	 last <= (next_x+xstep >= xlimit);
  