Foundation for character classes and ranges
Range boundaries now have their own type "RangeBoundary"