A sound type system guarantees that no type errors can
occur at runtime. A language with such a system is called
- Some checks can only be done dynamically, e.g. array
- Such checking can cause serious performance
degradation (factor of 2).
- Even so-called strongly typed languages often have ``holes'' in
the type system, e.g. variant records in Pascal.