stringdata type as its value. It ensures that at any point of time the value would always be
toLowerCase, etc., and redirects them to the stored
stringvalue inside the Unit, so when you call
Unit.includes(), it'll be executed on the Unit's value instead of the Unit instance itself.
replace, it doesn't mutate the value of the Unit, similar to how simple
stringvalue, since StringUnit is a non-primitive data structure, and the actual
stringvalue is stored inside the Unit, which can be accessed via
Unit.value()method. See the below comparisons for more clarity.