dt_Handle reaction, container;
  dt_String csmi, asmi;
  dt_Integer clen, alen;

  /* Read SMILES in. */
  reaction = dt_smilin(13, "O>>[OH-].[H+]");

  /* Write canonical form. */ 
  csmi = dt_cansmiles(&clen, reaction, 0);
  /* Write abitrary form. */ 
  asmi = dt_arbsmiles(&alen, reaction, 0);

  printf("Canonical form is %.*s and arbitrary form is %.*s.\n",
         clen, csmi, alen, asmi);
  /* Stream the reaction. */
 
container = dt_stream(reaction, TYP_MOLECULE);

Canonical form is O>>[H+].[OH-] and arbitrary form is O>>[OH-].[H+].