phantom type
generic class
abstract type
typeful
type erasure
unified type system
generic programming
nondegenerate
concept
generic type
strongly-typed
Hindley-Milner type system
metaclass
normotypical
generic
prototype
third-class object
subtyping
type system
single dispatch
Liskov substitution principle
statically-typed
autoreducible
many-sorted logic
property
software framework
name-based type system
Haskell
exception
nominal type system
formal parameter
type
typic
weakly-typed
valenced
value restriction
dynamically-typed
type hinting
hypersemigroup
aparametric
second-class object
quintessence
constructor
gradual typing
polymorphic
type class
box
functor
multimethod
imperative