precisely ... The rules were followed .... the numbers were given and the code was written to match the numbers, not the other way around. Of course, it IS good practice to code to many scenarios, BUT if you quantify the syntax and code to that, the overhead is significantly lower.
It is always best to code to the simplest form, otherwize you end up creating bloatware just like Microsoft, I remember when Windows could be loaded on a 100MB drive and have tons of extra space... now you are required a minimum of 2GB just to install windows where 8Mb of memory was sufficient for most programming 10 years ago, now you almost MUST have 512Mb. The issue has to do with the size of the code and the gobs of things put in the code that are designed to circumvent user stupidity.
To "fix" the code so the user can enter the range values .. use this:
(defun inbetween (@t @l @u)
(and(< (min @l @u) @t)(> (max @l @u) @t))
)