REPLACE:
The type is checked in assignments, arguments and relational operators (which check the values)
WITH:
Type checking of enumerated types used in assignments, as arguments and with operators is covered in Section 3.10.3.