/* The next item gives the second molecule */moleculeX=dt_next(container);if(dt_getrole(moleculeX,reaction)==DX_ROLE_PRODUCT)printf("The molecule role is product.\n");

/* The next item is the NULL object. */moleculeX=dt_next(container);if(NULL_OB==moleculeX)printf("The NULL object is next.\n");

/* A reset and next operation gives the first molecule again. */dt_reset(container);moleculeX=dt_next(container);if(moleculeX==molecule1)printf("Reset is like rewind.\n");

/* Each molecule refers to the reaction as its parent. */if(dt_parent(molecule1)==reaction)printf("You can access the reaction through the molecule.\n");

Canonical form is O>>[H+].[OH-] and arbitrary form is O>>[OH-].[H+].
The molecule role is reactant.
The molecule role is product.
The NULL object is next.
Reset is like rewind.
You can access the reaction through the molecule.