Sequence alignments: Global alignments (align complete sequences against each other) Local alignments (find optimal substring alignment(s)) Weighted (uses a weight matrix with the cost of substitutions) \begin{code} module Align -- an alignment is a map of the characters to replace -- (the rest are deletions/insertions) type PAlignment = (Array Int Bool) (Array Int Bool) align :: Sequence -> Sequence -> PAlignment walign :: WMatrix -> Sequence -> Sequence -> PAlignment \end{code}