anchor.diff:     endrule
   
      rule macout;
  -      Vector#(n,Float) vs;
  +      Vector#(n,Float) vs = unpack(0);
         let c = countOutReg + 1;
         for (Integer i = 0; i < valueOf(n); i = i + 1) begin
   	 let resp <- macs[i].response.get();
  
positive.code: 
  module [Module] mkDotProd#(PipeOut#(Vector#(n,Float)) xpipe, PipeOut#(Vector#(n,Float)) ypipe, UInt#(nwidth) numElts)(PipeOut#(Float))
     provisos (
        Add#(1,a__,n)
        );
  
     Bool verbose = True;
  
negative.code:    Vector#(n, FIFO#(Maybe#(Float))) accumFifo <- replicateM(mkFIFO());
     Reg#(UInt#(nwidth)) countInReg <- mkReg(0);
     Reg#(UInt#(nwidth)) countOutReg <- mkReg(0);
     FIFOF#(Vector#(n,Float)) resultFifo <- mkFIFOF();
  
     rule mul;
        let v = xypipe.first;
  