anchor.diff:        endmethod
         
         method Bool notFull() = gin.notFull;
  +      
  +   endinterface
  +   
  +   interface PipeOut out;
  +   
  +      method a first();
  +	 return(gin.first);
  +      endmethod
  +      
  +      method Action deq() = gin.deq;
  +   
  +      method Bool notEmpty() = gout.notEmpty;
  +      
  +   endinterface
  +endmodule
  +
  +module mkSerialFIFORX(SerialFIFORX#(a))
  +   provisos(Bits#(a, asize),
  +	    Add#(1,a__,TMul#(2,asize)),
  +	    Add#(asize,b__,TMul#(2,asize)),
  +	    Add#(1, c__, asize));
  +   Clock clk <- exposeCurrentClock;
  +   Reset rst <- exposeCurrentReset;
  +   Gearbox#(1, asize, Bit#(1)) gout <- mk1toNGearbox(clk,rst,clk,rst);
  +
  +   interface PipeIn in;
  +      
  +      method Action enq(a din);
  +	 gout.enq(din);
  +      endmethod
  +      
  +      method Bool notFull() = gout.notFull;
         
      endinterface
      
  
positive.code:       method Bool notEmpty() = gout.notEmpty;
        
     endinterface
     
  endmodule
negative.code:    interface PipeOut#(a) out;
  endinterface
  
  
  interface SerialFIFOTX#(type a);
     interface PipeIn#(a) in;
     interface PipeOut#(Bit#(1)) out;
  endinterface
  
  interface SerialFIFORX#(type a);
     interface PipeIn#(Bit#(1)) in;
     interface PipeOut#(a) out;
  endinterface
  
  
  module mkSerialFIFOTX(SerialFIFOTX#(a))
     provisos(Bits#(a, asize),
  	    Add#(1,a__,TMul#(2,asize)),
  	    Add#(asize,b__,TMul#(2,asize)),
  	    Add#(1, c__, asize));
     Clock clk <- exposeCurrentClock;
     Reset rst <- exposeCurrentReset;
  
     Gearbox#(asize, 1, Bit#(1)) gin <- mkNto1Gearbox(clk,rst,clk,rst);
  
     interface PipeIn in;
        
        method Action enq(a din);
  