module misc {

//module parameters
modulepar boolean mp_boolean := true;
modulepar { integer mp_int1, mp_int2 := 2; integer mp_int3 := 3;}

	//template with a single parameter
	template type1 template1 (integer i) :={
		int1 :=i,
		int2 :=2
	}

	template type1 template11 (integer i) modifies template1 :={
		int1 :=i,
		int2 :=4 
	}



	//template with multiple parameters
	template type1 template2 (integer i1, integer i2) :={
		int1 :=i1,
		int2 :=i2
	}

	type record type2 (integer i1, integer i2) {
		integer range (i1 .. i2)
	}

	type integer range2 (1 .. 10);

	const type2(1,10) c_range := 3;
	


	
}