BiobaseInfernal-0.8.1.0: Biobase/SElab/Model/Types.hs
-- | Generic model wrapper.
module Biobase.SElab.Model.Types where
import Control.Lens
import Data.Text (Text)
import GHC.Generics (Generic)
import Biobase.Types.Accession
import Biobase.SElab.CM.Types (CM)
import Biobase.SElab.HMM.Types (HMM)
import qualified Biobase.SElab.CM.Types as CM
import qualified Biobase.SElab.HMM.Types as HMM
-- | Generic model wrapper.
type Model = Either (HMM ()) CM
-- | A getter for the name of the model. Be it CM or HMM.
modelName :: Getter Model Text
modelName = to f
where f m = case m of
Left hmm -> HMM._name hmm
Right cm -> CM._name cm
modelAccession :: Getter Model (Accession ())
modelAccession = to f
where f m = case m of
Left hmm -> retagAccession $ HMM._accession hmm
Right cm -> retagAccession $ CM._accession cm