In
computer science, a
nominal or
nominative type system (or name-based type system) is a major class of
type system, in which compatibility and equivalence of
data types is determined by explicit declarations and/or the name of the types. Nominal systems are used to determine if types are equivalent, as well as if a type is a subtype of another. It contrasts with
structural systems, where comparisons are based on the structure of the types in question and do not require explicit declarations.