Data type predicates determine the type of an Lpp object or compare type hierarchies. This is important for complex programs where objects must be dynamically typed and there are classes of algorithms that can not be easily implemented using v-tables ie. virtual function tables. The Lpp user can still use v-tables and mix the use of v-tables with dynamic type dispatching. Since these data type predicates are very efficient they should not be avoided and used wherever it seems reasonable. Furthermore Lpp provides for type dispatching functions in type meta-objects, See Accessing Type Meta-Objects, which are as efficient as v-tables but more flexible and dynamic.