anchor.diff:  	 fr.args.aStart, fr.args.aLen, fr.args.bStart, fr.args.bLen);
         if (fr.args.bLen == 0)
   	 begin
  -	    $display("delete A[%d] through A[%d]", 
  -	       fr.args.aStart, fr.args.aStart + fr.args.aLen - 1);
  +	    if (fr.args.aLen > 0)
  +	       $display("delete A[%d] through A[%d]", 
  +		  fr.args.aStart, fr.args.aStart + fr.args.aLen - 1);
   	    fr.doreturn();
   	 end
  -     else if (fr.args.bLen == 0)
  +     else if (fr.args.aLen == 0)
   	begin
   	   $display("insert B[%d] through B[%d]",
   	      fr.args.bStart, fr.args.bStart + fr.args.bLen - 1);
  
positive.code: 	    if (min(alt1, alt2) < minsofar)
  	       par
  		  minsofar <= min(alt1, alt2);
  		  fr.vars.minj <= jj;
  	       endpar
  	 endseq
        if (fr.vars.minj > 1)
  
negative.code: 	 let tmp <- strA.response.get();
  	 aData <= tmp;
        endaction
        alt1 <= min(fr.args.tb, fr.args.te) + initialH + gap(zeroExtend(fr.args.bLen));
        minsofar <= alt1;
        fr.vars <= CVars{midi: 0, minj: 1, mintype: 1};
        // scan B
        for (jj <= 1; jj <= fr.args.bLen; jj <= jj + 1)
  	 seq
  