How would you implement a parameterized module in Verilog?

A parameterized module allows for flexible design by defining parameters that can be overridden during module instantiation.

For example :
module my_module #(parameter WIDTH = 8)(input [WIDTH-1:0] data_in, output [WIDTH-1:0] data_out);
  assign data_out = data_in;
endmodule?