The status of each element of the I-structure can be:
- present: the element can be read but not written,
- absent: a read request has to be deferred but a write operation into this element is allowed,
- waiting: at least one read request of the element has been deferred.
After an element of the data structure has become defined (initialized, value assigned; can happen exactly once), all deferred reads, which are kept in the associated queue, become immediately satisfied.
I-structure makes it possible to use a data structure before it is fully defined.
It allows defining complex data structures from existing though partially defined data structures.