diff --git a/FormalLanguage/GrammarProduct/Parser.hs b/FormalLanguage/GrammarProduct/Parser.hs
--- a/FormalLanguage/GrammarProduct/Parser.hs
+++ b/FormalLanguage/GrammarProduct/Parser.hs
@@ -30,7 +30,7 @@
 import Text.Trifecta
 import Text.Trifecta.Delta
 import Text.Trifecta.Result
-import Data.Semigroup ((<>),times1p)
+import Data.Semigroup ((<>))
 import qualified Control.Newtype as T
 --import Numeric.Natural.Internal
 import Prelude hiding (subtract)
diff --git a/GrammarProducts.cabal b/GrammarProducts.cabal
--- a/GrammarProducts.cabal
+++ b/GrammarProducts.cabal
@@ -1,7 +1,7 @@
 name:           GrammarProducts
-version:        0.1.1.1
-author:         Christian Hoener zu Siederdissen, 2013-2015
-copyright:      Christian Hoener zu Siederdissen, 2013-2015
+version:        0.1.1.2
+author:         Christian Hoener zu Siederdissen, 2013-2016
+copyright:      Christian Hoener zu Siederdissen, 2013-2016
 homepage:       https://github.com/choener/GrammarProducts
 bug-reports:    https://github.com/choener/GrammarProducts/issues
 maintainer:     choener@bioinf.uni-leipzig.de
@@ -60,17 +60,17 @@
 
 library
   build-depends: base               >= 4.7      && < 4.9
-               , ADPfusion          >= 0.4.1    && < 0.5.1
+               , ADPfusion          >= 0.5.1    && < 0.5.2
                , ansi-wl-pprint     >= 0.6      && < 0.7
                , bytestring         >= 0.10     && < 0.11
                , containers         >= 0.5      && < 0.6
                , data-default       >= 0.5      && < 0.6
-               , FormalGrammars     >= 0.2.1    && < 0.2.2
+               , FormalGrammars     >= 0.2.1    && < 0.3.1
                , lens               >= 4        && < 5
                , newtype            >= 0.2      && < 0.3
                , parsers            >= 0.12     && < 0.13
                , PrimitiveArray     >= 0.6.0.1  && < 0.7.1
-               , semigroups         >= 0.15     && < 0.17
+               , semigroups         >= 0.15     && < 0.19
                , template-haskell   >= 2        && < 3
                , transformers       >= 0.4      && < 0.5
                , trifecta           >= 1.5      && < 1.6
@@ -139,7 +139,7 @@
     build-depends: base               >= 4.7      && < 4.9
                  , ADPfusion
                  , containers
-                 , FormalGrammars
+                 , FormalGrammars     >= 0.3
                  , GrammarProducts
                  , PrimitiveArray
                  , template-haskell
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
 
 [*generalized Algebraic Dynamic Programming Homepage*](http://www.bioinf.uni-leipzig.de/Software/gADP/)
 
-An algebra of liner and context-free grammars.
+An abstract algebra for linear and context-free grammars.
 
 1.  Christian Höner zu Siederdissen, Ivo L. Hofacker, and Peter F. Stadler.  
     *Product Grammars for Alignment and Folding*  
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,9 @@
+0.1.1.2
+-------
+
+- This new version builds with both FormalGrammars 0.2 and 0.3. However, the
+  example requires 0.3
+
 0.1.1.1
 -------
 
diff --git a/src/AlignGlobal.hs b/src/AlignGlobal.hs
--- a/src/AlignGlobal.hs
+++ b/src/AlignGlobal.hs
@@ -16,7 +16,6 @@
 import           Data.Vector.Unboxed (Vector)
 import           Text.Printf
 import           Data.Sequence ((|>),Seq,empty)
-import qualified Data.Vector.Fusion.Stream as S
 import           Data.Foldable (toList)
 
 import           ADP.Fusion
@@ -55,7 +54,7 @@
 
 
 
-score :: Monad m => SigGlobal m Int Int Char
+score :: Monad m => SigGlobal m Int Int Char Char
 score = SigGlobal
   { donDon = \   (Z:.():.()) -> 0
   , stpStp = \ x (Z:.a :.b ) -> if a==b then x+1 else -999999
@@ -69,7 +68,7 @@
 --
 -- TODO use fmlist to make this more efficient.
 
-pretty :: Monad m => SigGlobal m (String,String) [(String,String)] Char
+pretty :: Monad m => SigGlobal m (String,String) [(String,String)] Char Char
 pretty = SigGlobal
   { donDon = \       (Z:.():.()) -> ("","")
   , stpStp = \ (x,y) (Z:.a :.b ) -> (x ++ [a],y ++ [b])
@@ -89,7 +88,7 @@
 
 -- | Decoupling the forward phase for CORE observation.
 
-runNeedlemanWunschForward :: Vector Char -> Vector Char -> Z:.(ITbl Id Unboxed (Z:.PointL:.PointL) Int)
+runNeedlemanWunschForward :: Vector Char -> Vector Char -> Z:.(ITbl Id Unboxed (Z:.PointL I:.PointL I) Int)
 runNeedlemanWunschForward i1 i2 = let n1 = VU.length i1; n2 = VU.length i2 in mutateTablesDefault $
   gGlobal score
     (ITbl 0 0 (Z:.EmptyOk:.EmptyOk) (PA.fromAssocs (Z:.PointL 0:.PointL 0) (Z:.PointL n1:.PointL n2) (-999999) []))
