Those that obey general principles without exception. For example:
(0) “Abstraction clients must not rely on implementation details”: parametric polymorphism, abstract data types.
(1) “Case analyses must be exhaustive”: algebraic data types and pattern matching.
(2) “Make as few assumptions possible about the intended meaning of programs”: principal types.
Those that obey general principles without exception. For example:
(0) “Abstraction clients must not rely on implementation details”: parametric polymorphism, abstract data types.
(1) “Case analyses must be exhaustive”: algebraic data types and pattern matching.
(2) “Make as few assumptions possible about the intended meaning of programs”: principal types.