-- | Read a molecule.
parseElem :: [String] -> String -> ([String], String)
parseElem cs (s1 : s2 : ss) | isUpper s1 && isLower s2 = (cs ++ [[s1, s2]], ss)
parseElem :: [String] -> String -> ([String], String)
parseElem cs (s1 : s2 : ss) | isUpper s1 && isLower s2 = (cs ++ [[s1, s2]], ss)
parseElem cs (s1 : s2 : ss) | isUpper s1 && isLower s2 = (cs ++ [[s1, s2]], ss)