anchor.diff:        endmethod
      endinterface
   endmodule
  +`endif
  
positive.code: import Bcam::*;
  import BcamTypes::*;
  import PrintTrace::*;
   `include "ConnectalProjectConfig.bsv"
  
  interface MatchTable#(numeric type id, numeric type depth, numeric type keySz, numeric type actionSz);
     interface Server#(Bit#(keySz), Maybe#(Bit#(actionSz))) lookupPort;
  
negative.code: 
     MatchTable#(id, depth, keySz, actionSz) ret_ifc;
  `ifdef SIMULATION
     ret_ifc <- mkMatchTableBluesim(name);
  `else  // !SIMULATION
     ret_ifc <- mkMatchTableSynth();
  `endif // SIMULATION
     return ret_ifc;
  endmodule
  
  `ifndef SIMULATION
  module mkMatchTableSynth(MatchTable#(id, depth, keySz, actionSz))
     provisos (NumAlias#(depthSz, TLog#(depth)),
               Mul#(a__, 256, b__),
  