module Biobase.Secondary.Constraint where
import Data.Primitive.Types
import qualified Data.Vector.Generic as VG
import qualified Data.Vector.Generic.Mutable as VGM
import qualified Data.Vector.Unboxed as VU
import Biobase.Secondary.Diagrams
class MkConstraint a where
mkConstraint :: a -> Constraint
newtype Constraint = Constraint {unConstraint :: VU.Vector (Char,Int)}
deriving (Show,Read,Eq)
bonusCC = VU.fromList "()<>|"
nobonusCC = VU.fromList ".x"
instance MkConstraint String where
mkConstraint xs = mkConstraint . VU.fromList $ xs
instance MkConstraint (VU.Vector Char) where
mkConstraint cs = Constraint $ VU.zip cs ks where
(D1S ks) = mkD1S cs