Type compatibility by name ("name equivalence") means the two variables have compatible types if they are in either the same declaration or in declarations that use the same type name
Easy to implement but highly restrictive:
Subranges of integer types are not compatible with integer types
Formal parameters must be the same type as their corresponding actual parameters (Pascal)
Predefined or user-supplied coercions can ease restrictions, but also create more potential for error