Parametrization

The uvm_driver and sequencer base classes contain ports and exports members that are parametrized with a generic transaction type. If you didn’t parametrized these classes, you would have to cast the transaction to the actual type before accessing specific members. People do parameterize other testbench components, but usually they are written specifically for a particular type that they declare the class specializations inside that class.