module Data.SMILES where

import Data.SMILES.Atom
import Data.SMILES.Bond

newtype SMILES = SMILES { getSMILES :: [ChainToken] }
  deriving (Show, Read, Eq, Ord)

data ChainToken = Atom Atom
                | Bond Bond
                | RingClosure Int
                | Branch SMILES
  deriving (Show, Read, Eq, Ord)