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.

oneToTen[x] := isInteger[x] AND x >= 1 AND x <= 10
 
var y is oneToTen = 1
 
while (true)
{
   println[y]
   y = y + 1
}