Demonstrate how to define a type that behaves like an integer but has a lowest valid value of 1 and a highest valid value of 10. Include all bounds checking you need to write, or explain how the compiler or interpreter creates those bounds checks for you.

type
	range = 1..10;
var
	n: range;
begin
	n := 10;
	{$rangeChecks on}
	n := n + 10; // will yield a run-time error
end;