This document discusses type checking and type inference rules implemented in a TypeSystem aspect. It contains:
1) Rules that implement semantic error detection by checking conditions and reporting errors/warnings.
2) Inference rules that calculate the types of nodes based on concepts and patterns, such as setting the type of integer nodes to int and string nodes to string.
3) Rules establishing restrictions on the type of assigned values being subtypes of assignees.
4) The concept of a UserField that sets the type of user fields to the name of the entity type. Separate type checking must be implemented for user fields.