Added Reads and Writes support for Enumerations. Fixes #2050

`(a must x) and (b must y) and (c must z)`