anchor.diff:      // //   deq < search < enq
       // method Bool search(searchType x) if (!isValid(enqReq[0]));
       //     // compute dataPostDeq by considering deqReq[1]
  -    //     List#(Maybe#(dataType)) dataPostDeq = map(readReg, data);
  +    //     Vector#(size, Maybe#(dataType)) dataPostDeq = readVReg(data);
       //     if (deqReq[1]) begin
       //         dataPostDeq[deqP] = tagged Invalid;
       //     end
  
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;
  