Correct, according the c++ standards a Boolean variable can be true of false, but the Arduino functions use HIGH and LOW, which are translated to 1 and 0 by the compiler.
When used in an if-statement there’s no need to store it as a variable.
When the need arises to store a Boolean variable, the Arduino IDE uses a 8 bit integer to store a 1 or a 0.
When a variable needs to be converted to Boolean, the variable is either nonzero or zero.
In if (R == HIGH) the compiler recognizes the right part as Boolean, so it will convert the left part to Boolean also.