Typing discipline: Nominal

Nominal typing (also known as nominative or name-based) determines compatibility of data types using their names and explicit declarations of variables. Two variables are type-compatible if and only if their declarations refer to the same type. Two types with identical structure but different names are different.

Nominal typing is the opposite of structural typing, and is considered to be more type-safe than the latter, for the expense of lower flexibility.

Programming languages that uses this typing discipline: