anchor.diff:          // enqueue logic
           if (enqReq[2] matches tagged Valid .enqVal) begin
               enqueued = True;
  -            nextEnqP = (enqP == fromInteger(size - 1)) ? 0 : enqP + 1;
  +            nextEnqP = (enqP == fromInteger(valueOf(size) - 1)) ? 0 : enqP + 1;
               // perform state updates
               data[enqP] <= tagged Valid enqVal;
               enqP <= nextEnqP;
  
positive.code:         return fromMaybe(?, data[deqP]);
      endmethod
      method Action clear;
          for (Integer i = 0 ; i < size ; i = i+1) begin
              data[i] <= tagged Invalid;
          end
          enqP <= 0;
          deqP <= 0;
          full <= False;
  
negative.code: package SFIFO;
  
  import Ehr::*;
  import Vector::*;
  
  interface SFIFO#(numeric type size, type dataType, type searchType);
      method Action enq(dataType x);
      method Action deq;
      method dataType first;
  