anchor.diff:        );
      module  mkReducePipe#(CombinePipe#(Tuple2#(a,a), a) combinepipe,
   			 PipeOut#(Vector#(n,a)) inpipe)
  -			(PipeOut#(a) ifc);
  +			(PipeOut#(a));
         FIFOF#(Vector#(TDiv#(n,2),a)) infifo0 <- mkFIFOF;
         FIFOF#(Vector#(TSub#(n,TDiv#(n,2)),a)) infifo1 <- mkFIFOF;
         rule splitinput;
  
positive.code:    provisos(Bits#(a,a__));
     module  mkReducePipe#(CombinePipe#(Tuple2#(a,a), a) combinepipe,
  			 PipeOut#(Vector#(2,a)) inpipe)
  			(PipeOut#(a) ifc);
        function a foo(Vector#(2,a) invec); 
  	 return combinepipe(tuple2(invec[0], invec[1])); 
        endfunction
  
negative.code:    endmodule
     module  mkReducePipes#(CombinePipe#(Tuple2#(a,a), a) combinepipe,
  			  Vector#(2,PipeOut#(a)) inpipes)
  			  (PipeOut#(a));
        function a foo(Tuple2#(a,a) invec); 
  	 return combinepipe(invec);
        endfunction
  