-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Collection of alignment algorithms -- @package AlignmentAlgorithms @version 0.0.1.2 -- | Very simple pairwise global alignment. The terminal tapes may contain -- the atomic types u and l which means that one may -- align sequences of different types. -- -- In case you want to align nucleotides to amino acids, this version -- should only be used if the nucleotides are already in triplet form and -- have no frameshift within the sequence. Alternatively, specify a -- derived grammar of higher complexity. module DP.Alignment.Global.Tapes2 -- | Define signature and grammar data SigGlobal m_aakO s_aakP r_aakQ t_l_aakR t_u_aakS SigGlobal :: (s_aakP -> (:.) ((:.) Z t_l_aakR) t_u_aakS -> s_aakP) -> (s_aakP -> (:.) ((:.) Z t_l_aakR) () -> s_aakP) -> ((:.) ((:.) Z ()) () -> s_aakP) -> (s_aakP -> (:.) ((:.) Z ()) t_u_aakS -> s_aakP) -> (Stream m_aakO s_aakP -> m_aakO r_aakQ) -> SigGlobal m_aakO s_aakP r_aakQ t_l_aakR t_u_aakS align :: SigGlobal m_aakO s_aakP r_aakQ t_l_aakR t_u_aakS -> s_aakP -> (:.) ((:.) Z t_l_aakR) t_u_aakS -> s_aakP delin :: SigGlobal m_aakO s_aakP r_aakQ t_l_aakR t_u_aakS -> s_aakP -> (:.) ((:.) Z t_l_aakR) () -> s_aakP done :: SigGlobal m_aakO s_aakP r_aakQ t_l_aakR t_u_aakS -> (:.) ((:.) Z ()) () -> s_aakP indel :: SigGlobal m_aakO s_aakP r_aakQ t_l_aakR t_u_aakS -> s_aakP -> (:.) ((:.) Z ()) t_u_aakS -> s_aakP h :: SigGlobal m_aakO s_aakP r_aakQ t_l_aakR t_u_aakS -> Stream m_aakO s_aakP -> m_aakO r_aakQ gGlobal :: (Build b2, MkStream m S t3, MkStream m (Stack b2) t3, Element (Stack b2) t3, RuleContext t3, TermStaticVar (TermSymbol (TermSymbol M Epsilon) Epsilon) t3, TermStaticVar (TermSymbol (TermSymbol M Deletion) b1) t3, TermStaticVar (TermSymbol (TermSymbol M b) Deletion) t3, TermStaticVar (TermSymbol (TermSymbol M b) b1) t3, TerminalStream m (TermSymbol (TermSymbol M Epsilon) Epsilon) t3, TerminalStream m (TermSymbol (TermSymbol M Deletion) b1) t3, TerminalStream m (TermSymbol (TermSymbol M b) Deletion) t3, TerminalStream m (TermSymbol (TermSymbol M b) b1) t3, Apply ((:.) (Arg (Stack b2)) ((:.) (TermArg (TermSymbol M b)) ()) -> a), Apply ((:.) (Arg (Stack b2)) (TermArg (TermSymbol (TermSymbol M b) b1)) -> a), Apply ((:.) (Arg (Stack b2)) (TermArg (TermSymbol (TermSymbol M Deletion) b1)) -> a), (~) * (Fun ((:.) (Arg (Stack b2)) ((:.) (TermArg (TermSymbol M b)) ()) -> a)) (a -> (:.) ((:.) Z t1) () -> a), (~) * (Fun ((:.) (Arg (Stack b2)) (TermArg (TermSymbol (TermSymbol M b) b1)) -> a)) (a -> (:.) ((:.) Z t1) t2 -> a), (~) * (Fun ((:.) (Arg (Stack b2)) (TermArg (TermSymbol (TermSymbol M Deletion) b1)) -> a)) (a -> (:.) ((:.) Z ()) t2 -> a)) => SigGlobal m a t t1 t2 -> ((t3 -> t3 -> m t) -> b2) -> b -> b1 -> (:.) Z b2 -- | Generic backtracking scheme via FMLists. backtrack :: Monad m => u -> l -> SigGlobal m (FMList (l, u)) [FMList (l, u)] l u -- | Turn a single FMList backtracking result into the -- corresponding list. runBacktrack :: FMList (u, l) -> [(u, l)] instance (Monad mL0, Monad mR0, Eq xL0, mL0 ~ mR0) => BacktrackingProduct (SigGlobal mL0 xL0 xL0 t_l0 t_u0) (SigGlobal mR0 xR0 rR0 t_l0 t_u0)