Example Program: CANSMI
What it does:
Generates unique SMILES. Takes SMILES strings on input, makes an object,
generates unique SMILES and prints them on output.
What it illustrates:
Other examples: rings, showparts, smarts_filter, hbonds, depict_usage_[1-6]
As the prototypical toolkit program, it shows the polymorphism at work.
dt_smilin() returns either a reaction or molecule
object for the given SMILES string.
dt_cansmiles() accepts either a reaction or molecule
Don't assume object types. If absolutely necessary, check them, but
otherwise, think in terms of reactions and molecules being the same