úÎA«     Safe2This model describes molecules with valence boundsSet of all aliphatic symbolsSet of all aromatic symbolsParses textual representationConvert SMILES to the string !"#$%&'()*+,-./012 !"#$%&'()*+,-./012$Copyright (C) 2014 Krzysztof LangnerBSD3&Krzysztof Langner <klangner@gmail.com>alphaportableSafe Parse formula JparseFormula "C2H4" `shouldBe` Molecule [Element "C" 2, Element "H", 4)] Write Molecule to string3Write Molecule to string4.Write ion number in format expected by formula5*Write number in format expected by formula6 789:;<= 345    6 789:;<= 345 Safe!Find element by its atomic number atomicNumber (element 8) == 8 Find element by its symbol (atomicNumber (elementBySymbol "O") == 8 ÝShow number of electrons in each shell For elements which are exception to Aufbau principle configuration is given manually Is it possible to calculate it for all elements based only on atom properties? -let e = element 8 shellElectrons e == [2, 6] Number of valance electrons *let e = element 8 valanceElectrons e == 6 $Number of covalent bounds in element (let e = element 8 covalentBounds e == 2 >?@ABCDE  >?@ABCDEF         !"#$%&'()*+,-./012345678,9 #:;<=>?@!radium-0.7-5lrvg891ynU5QLhawX2BpuRadium.Formats.SmilesRadium.Formats.CondensedRadium.ElementSmiles SmilesRing readSmiles writeSmiles$fEqAtom $fShowAtomMoleculeIonElement readCondensedwriteCondensed$fFunctorMolecule $fEqMolecule$fShowMolecule atomicNumbersymbol atomWeightelectroNegativityionizationEnergyelementelementBySymbolelectronConfigvalanceElectronscovalentBounds $fEqElement $fShowElement aliphatics aromaticsAtom AliphaticAromaticUnknownsmilesboundatom bracketAtomsymbolOrUnknownhcountcharge atomClassnumberaliphaticOrganicaromaticOrganicunknown writeAtom writeBoundswriteCondensed2writeIon writeNumberSymbolMoleculeionformula subformula ionNumber_nameptableconfigExceptionssubshellMaxElectronsshellConfigGen fillShells