anchor.diff:     method Action start(IteratorConfig#(a) cfg);
         iter.start(cfg, ?);
      endmethod
  +   method a count() = iter.count();
      method isFirst = iter.isFirst;
      method isLast = iter.isLast;
   endmodule
  
positive.code: 
  module mkIteratorWithContext(IteratorWithContext#(a,c)) provisos (Arith#(a), Bits#(a,awidth), Eq#(a), Ord#(a), Bits#(c,cwidth));
     Reg#(c) ctxtReg <- mkReg(unpack(0));
     Reg#(a) x <- mkReg(0);
     Reg#(a) xbase <- mkReg(0);
     Reg#(a) xstep <- mkReg(0);
  
negative.code:       endmethod
     endinterface
     method Action start(IteratorConfig#(a) cfg, c ctxt) if (idle);
        countReg <= 0;
        x <= cfg.xbase;
        xbase <= cfg.xbase;
        xstep <= cfg.xstep;
  