anchor.diff:     endinterface
   endmodule
   
  -module mkMatchTableBluesim(MatchTable#(depth, keySz, actionSz))
  -   provisos (MatchTableSim#(keySz, actionSz),
  +module mkMatchTableBluesim(MatchTable#(id, depth, keySz, actionSz))
  +   provisos (MatchTable::MatchTableSim#(id, keySz, actionSz),
                Log#(depth, depthSz));
      let verbose = True;
   
  
positive.code:    rule do_read (isInitialized);
        let v <- toGet(readReqFifo).get;
        $display("(%0d) MatchTable: do_read %h", $time, v);
        let ret <- matchtable_read(pack(v));
        $display("(%0d) MatchTable: read %h", $time, ret);
        if (ret != 0)
           readDataFifo.enq(tagged Valid ret);
  
negative.code:    interface Put add_entry;
        method Action put (Tuple2#(Bit#(keySz), Bit#(actionSz)) v);
           $display("(%0d) MatchTable: insert %h %h", $time, tpl_1(v), tpl_2(v));
           Bit#(id) tid = 0;
           matchtable_write(tid, tpl_1(v), tpl_2(v));
        endmethod
     endinterface
     interface Put delete_entry;
  