A fundamental distinction is extensional vs intensional type theory. See also intensional versus extensional equality. The extensional definition of equality is not equivalent to the intensional definition. The classes of an ontology may be extensional or intensional in nature. These are examples of extensional and intensional definitions of sets, respectively. A language is intensional if it contains intensional statements, and extensional otherwise. In other words, these first-order interpretations are extensional not intensional. Later, possible world approach to semantics provided tools for a comprehensive study in intensional semantics. Imperatives are roughly parallel to modal verbs and intensional contexts in general. This principle is presupposed by claims that hold that substitution fails in certain intensional contexts. Natural languages abound with intensional functors, this can be illustrated by intensional statements. Lambda calculus and programming languages regard function identity as an intensional property. Lambda calculus is usually interpreted as using intensional equality. He is best known for his work on demonstratives, propositions, and reference in intensional contexts. Bertrand Russell thought that this demonstrated the failure of substitutivity of identicals in intensional contexts.