<ul>
<li>The type system must reliably identify which objects are to be
managed. An <tt>int*</tt> might be a pointer to a <tt>malloc</tt>'ed
-array, or it might be a interior pointer to such an array, or it might
+array, or it might be an interior pointer to such an array, or it might
point to some field or local variable. In contrast, values of the
retainable object pointer types are never interior.</li>
<li>The type system must reliably indicate how to
<li><b><tt>__extension__</tt></b>: The expression form of this extension causes
any evaluatable subexpression to be accepted as an integer constant
expression.</li>
-<li><b><tt>__builtin_constant_p</tt></b>: This returns true (as a integer
+<li><b><tt>__builtin_constant_p</tt></b>: This returns true (as an integer
constant expression) if the operand evaluates to either a numeric value
(that is, not a pointer cast to integral type) of integral, enumeration,
floating or complex type, or if it evaluates to the address of the first