anchor.diff:     FSM hC2fsm <- mkFSM(hirschC2Stmt);
      
      // AlgC step 1, 2, and 3
  -   rule hc1 (fr.pc == HCS1)
  +   rule hc1 (fr.pc == HCS1);
  +      $display("HCS1 aStart %d aLen %d bStart %d bLen %d", fr.args.aStart, fr.args.aLen, fr.args.bStart, fr.args.bLen);
         if (fr.args.bLen == 0)
   	doreturn();
        else if (fr.args.aLen == 1)
   	begin
  -	   hc2fsm.start()
  +	   hc2fsm.start();
   	   fr.nextpc(HCS2);
   	end
        else
  
positive.code: 
  typedef enum {HCSIdle, HCS1, HCS2, HCSComplete} HCState deriving (Bits, Eq);
  
  module mkHirschC#(BRAMServer#(Bit#(strIndexWidth), Bit#(8)) strA, BRAMServer#(Bit#(strIndexWidth), Bit#(8)) strB, BRAMServer#(Bit#(lIndexWidth), Bit#(16)) matL, MCSAlgorithm chirschB0, chirschB1, BRAMServer#(Bit#(lIndexWidth)) l0, BRAMServer#(lIndexWidth)) l1)(MCSAlgorithm)
           provisos(Add#(0, 7, strIndexWidth),
  	       Add#(0, 14, lIndexWidth));
  
  
negative.code:    endmethod
  
     method Action start();
        docall(HCS1, HCSComplere, {aStart: 0, aLen: aLenReg,
  	 bStart: 0, bLen: bLenReg}, {0, 0})
     endmethod
     
     interface FSM fsm = hC;
  