anchor.diff:  
   interface IteratorIfc#(type a);
      interface PipeOut#(a) pipe;
  +   interface PipeOut#(IteratorValue#(a)) ivpipe;
      method a count();
      method Bool isFirst();
      method Bool isLast();
  
positive.code: 	 return (x < xlimit);
        endmethod
     endinterface
     method Action start(IteratorConfig#(a) cfg, c ctxt) if (idle);
        countReg <= 0;
        x <= cfg.xbase;
  
negative.code: module mkIterator(IteratorIfc#(a)) provisos (Arith#(a), Bits#(a,awidth), Eq#(a), Ord#(a));
     IteratorWithContext#(a,void) iter <- mkIteratorWithContext();
     interface PipeOut pipe = iter.pipe;
     interface PipeOut ivpipe = iter.ivpipe;
     method Action start(IteratorConfig#(a) cfg);
        iter.start(cfg, ?);
     endmethod
  