Enums

When type-checking an expression, we propagate downward whatever type hint we are able in the form of an Expectation.