maybe (from help):An impure incomplete object type has attributes but causes compilation errors because it refers to an undefined type. For example, the following CREATE TYPE statement causes an error because object type Address is undefined: CREATE TYPE Customer AS OBJECT (
   id    NUMBER,
   name  VARCHAR2(20),
   addr  Address,  -- not yet defined
   phone VARCHAR2(15)
);
This allows you to defer the definition of object type Address. Moreover, the incomplete type Customer can be made available to other application developers for use in refs.