BTW, I found an interesting bug today:
package parameters;
parameter int number_of_ALU_types = 1;
parameter int num_data_read_intfcs = '{2};
endpackage
import parameters::*;
module ALU_wrapper (clk, rst);
input bit clk, rst;
parameter int ALU_type = 0;
parameter int num_data_read_intfcs = num_data_read_intfcs; //this line is critical
endmodule
The reason is - the name of the parameter in the critical line is equal to the name of the array in the package. Modelsim has no problems with it, but Quartus generates stack overflow critical error. Hopefully my post would prevent somebody from doing the same mistake:)