diff --git a/AlignmentAlgorithms.cabal b/AlignmentAlgorithms.cabal
--- a/AlignmentAlgorithms.cabal
+++ b/AlignmentAlgorithms.cabal
@@ -1,5 +1,5 @@
 name:           AlignmentAlgorithms
-version:        0.0.2.0
+version:        0.0.2.1
 author:         Christian Hoener zu Siederdissen, 2013-2015
 copyright:      Christian Hoener zu Siederdissen, 2013-2015
 homepage:       https://github.com/choener/AlignmentAlgorithms
@@ -11,7 +11,7 @@
 build-type:     Simple
 stability:      experimental
 cabal-version:  >= 1.10.0
-tested-with:    GHC == 7.8.4, GHC == 7.10.1
+tested-with:    GHC == 7.8.4, GHC == 7.10.2
 synopsis:       Collection of alignment algorithms
 description:
                 <http://www.bioinf.uni-leipzig.de/Software/gADP/ generalized Algebraic Dynamic Programming>
@@ -40,13 +40,13 @@
 
 library
   build-depends: base             >= 4.7      && < 4.9
-               , ADPfusion        >= 0.4.0.2  && < 0.4.2
+               , ADPfusion        >= 0.4.0.2  && < 0.5.1
                , containers       >= 0.5      && < 0.6
                , fmlist           >= 0.9      && < 0.10
                , FormalGrammars   >= 0.2.1    && < 0.2.2
                , GrammarProducts  >= 0.1.1    && < 0.1.2
-               , PrimitiveArray   >= 0.6.0    && < 0.6.2
-               , vector           >= 0.10     && < 0.11
+               , PrimitiveArray   >= 0.6.0    && < 0.7.1
+               , vector           >= 0.10     && < 0.12
   exposed-modules:
     DP.Alignment.Global.Tapes2
   default-language:
diff --git a/DP/Alignment/Global/Tapes2.hs b/DP/Alignment/Global/Tapes2.hs
--- a/DP/Alignment/Global/Tapes2.hs
+++ b/DP/Alignment/Global/Tapes2.hs
@@ -52,10 +52,22 @@
   }
 {-# Inline backtrack #-}
 
+-- | Backtracking with more options
+
+backtrackFun :: Monad m => (l -> u -> r) -> (l -> u -> r) -> u -> l -> SigGlobal m (FMList r) [FMList r] l u
+backtrackFun f g ud ld = SigGlobal
+  { done  = \ _ -> F.empty
+  , align = \ x (Z:.l:.u) -> x `F.snoc` f l  u
+  , indel = \ x (Z:._:.u) -> x `F.snoc` g ld u
+  , delin = \ x (Z:.l:._) -> x `F.snoc` g l  ud
+  , h     = toList
+  }
+{-# Inline backtrackFun #-}
+
 -- | Turn a single @FMList@ backtracking result into the corresponding
 -- list.
 
-runBacktrack :: FMList (u,l) -> [(u,l)]
+runBacktrack :: FMList r -> [r]
 runBacktrack = F.toList
 {-# Inline runBacktrack #-}
 
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,9 @@
+0.0.2.1
+-------
+
+- addded and updated stack files
+- updated travis.yml
+
 0.0.1.0
 -------
 
