module Bio.PDB.Iterable(Iterable(..)) where
import Bio.PDB.Structure.List as L
import Bio.PDB.Structure
import Control.Monad.Identity
import Control.Monad(foldM)
import Bio.PDB.InstantiateIterable
$(gen_iterable [t| Structure |] [t| Model |] [e| models |] [e| (\s m -> s { models = m }) |] )
$(gen_iterable [t| Model |] [t| Chain |] [e| chains |] [e| (\s m -> s { chains = m }) |] )
$(gen_iterable [t| Chain |] [t| Residue |] [e| residues |] [e| (\s m -> s { residues = m }) |] )
$(gen_iterable [t| Residue |] [t| Atom |] [e| atoms |] [e| (\s m -> s { atoms = m }) |] )
$(self_iterable [t| Structure |] )
$(self_iterable [t| Model |] )
$(self_iterable [t| Chain |] )
$(self_iterable [t| Residue |] )
$(self_iterable [t| Atom |] )
$(trans_iterable [t| Structure |] [t| Model |] [t| Chain |] )
$(trans_iterable [t| Structure |] [t| Model |] [t| Residue |] )
$(trans_iterable [t| Structure |] [t| Model |] [t| Atom |] )
$(trans_iterable [t| Model |] [t| Chain |] [t| Residue |] )
$(trans_iterable [t| Model |] [t| Chain |] [t| Atom |] )
$(trans_iterable [t| Chain |] [t| Residue |] [t| Atom |] )