sealed and value classes