diff --git a/multirec.cabal b/multirec.cabal
--- a/multirec.cabal
+++ b/multirec.cabal
@@ -1,15 +1,15 @@
-name:			multirec
-version:		0.4
-license:		BSD3
-license-file:		LICENSE
-author:			Alexey Rodriguez,
-                        Stefan Holdermans,
-                        Andres Löh,
-                        Johan Jeuring
-maintainer:		generics@haskell.org
-category:		Generics
-synopsis:		Generic programming for families of recursive datatypes
-homepage:		http://www.cs.uu.nl/wiki/GenericProgramming/Multirec
+name:                 multirec
+version:              0.4.1
+license:              BSD3
+license-file:         LICENSE
+author:               Alexey Rodriguez,
+                      Stefan Holdermans,
+                      Andres Löh,
+                      Johan Jeuring
+maintainer:           generics@haskell.org
+category:             Generics
+synopsis:             Generic programming for families of recursive datatypes
+homepage:             http://www.cs.uu.nl/wiki/GenericProgramming/Multirec
 description:
   Many generic programs require information about the recursive positions
   of a datatype. Examples include the generic fold, generic rewriting or
@@ -34,41 +34,40 @@
      /Generic programming with fixed points for mutually recursive datatypes/.
      ICFP 2009.
  
-stability:		experimental
-build-type:		Simple
-cabal-version:		>= 1.2.1
-tested-with:		GHC == 6.8.3, GHC == 6.10.3
-hs-source-dirs:		src
-exposed-modules:	Generics.MultiRec
+stability:            experimental
+build-type:           Simple
+cabal-version:        >= 1.2.1
+tested-with:          GHC == 6.8.3, GHC == 6.10.3, GHC == 6.12.1
+hs-source-dirs:       src
+exposed-modules:      Generics.MultiRec
 
-			-- Base
-                        Generics.MultiRec.Base
-			Generics.MultiRec.Constructor
-                        Generics.MultiRec.TH
+                      -- Base
+                      Generics.MultiRec.Base
+                      Generics.MultiRec.Constructor
+                      Generics.MultiRec.TH
 
-			-- Generic functions
-			Generics.MultiRec.ConNames
-			Generics.MultiRec.HFunctor
-			Generics.MultiRec.HFix
-			Generics.MultiRec.Fold
-			Generics.MultiRec.FoldK
-			Generics.MultiRec.FoldAlg
-			Generics.MultiRec.FoldAlgK
-			Generics.MultiRec.Compos
-			Generics.MultiRec.Eq
-			Generics.MultiRec.Show
+                      -- Generic functions
+                      Generics.MultiRec.ConNames
+                      Generics.MultiRec.HFunctor
+                      Generics.MultiRec.HFix
+                      Generics.MultiRec.Fold
+                      Generics.MultiRec.FoldK
+                      Generics.MultiRec.FoldAlg
+                      Generics.MultiRec.FoldAlgK
+                      Generics.MultiRec.Compos
+                      Generics.MultiRec.Eq
+                      Generics.MultiRec.Show
 
-			-- Extra
-			Generics.MultiRec.TEq
+                      -- Extra
+                      Generics.MultiRec.TEq
 
-extra-source-files:	examples/AST.hs
-                        examples/ASTUse.hs
-                        examples/ASTTHUse.hs
-			examples/ASTExamples.hs
-			examples/Single.hs
-			examples/SingleUse.hs
-			examples/SingleTHUse.hs
-			examples/SingleExamples.hs
-			CREDITS
-build-depends:		base >= 3.0 && < 5,
-                        template-haskell >= 2.2 && < 2.4
+extra-source-files:   examples/AST.hs
+                      examples/ASTUse.hs
+                      examples/ASTTHUse.hs
+                      examples/ASTExamples.hs
+                      examples/Single.hs
+                      examples/SingleUse.hs
+                      examples/SingleTHUse.hs
+                      examples/SingleExamples.hs
+                      CREDITS
+build-depends:        base >= 3.0 && < 5, template-haskell >= 2.2 && < 2.5
diff --git a/src/Generics/MultiRec.hs b/src/Generics/MultiRec.hs
--- a/src/Generics/MultiRec.hs
+++ b/src/Generics/MultiRec.hs
@@ -26,7 +26,7 @@
     module Generics.MultiRec.Compos,
     module Generics.MultiRec.Eq,
     module Generics.MultiRec.HFix,
-    module Generics.MultiRec.Show
+    module Generics.MultiRec.Show,
   )
   where
 
diff --git a/src/Generics/MultiRec/Eq.hs b/src/Generics/MultiRec/Eq.hs
--- a/src/Generics/MultiRec/Eq.hs
+++ b/src/Generics/MultiRec/Eq.hs
@@ -3,6 +3,7 @@
 {-# LANGUAGE TypeOperators         #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE GADTs                 #-}
 
 -----------------------------------------------------------------------------
 -- |
diff --git a/src/Generics/MultiRec/FoldAlg.hs b/src/Generics/MultiRec/FoldAlg.hs
--- a/src/Generics/MultiRec/FoldAlg.hs
+++ b/src/Generics/MultiRec/FoldAlg.hs
@@ -6,6 +6,7 @@
 {-# LANGUAGE Rank2Types            #-}
 {-# LANGUAGE ScopedTypeVariables   #-}
 {-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE GADTs                 #-}
 
 -----------------------------------------------------------------------------
 -- |
diff --git a/src/Generics/MultiRec/FoldAlgK.hs b/src/Generics/MultiRec/FoldAlgK.hs
--- a/src/Generics/MultiRec/FoldAlgK.hs
+++ b/src/Generics/MultiRec/FoldAlgK.hs
@@ -6,6 +6,7 @@
 {-# LANGUAGE Rank2Types            #-}
 {-# LANGUAGE ScopedTypeVariables   #-}
 {-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE GADTs                 #-}
 
 -----------------------------------------------------------------------------
 -- |
diff --git a/src/Generics/MultiRec/Show.hs b/src/Generics/MultiRec/Show.hs
--- a/src/Generics/MultiRec/Show.hs
+++ b/src/Generics/MultiRec/Show.hs
@@ -3,6 +3,7 @@
 {-# LANGUAGE TypeOperators         #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE GADTs                 #-}
 
 -----------------------------------------------------------------------------
 -- |
diff --git a/src/Generics/MultiRec/TH.hs b/src/Generics/MultiRec/TH.hs
--- a/src/Generics/MultiRec/TH.hs
+++ b/src/Generics/MultiRec/TH.hs
@@ -13,7 +13,7 @@
 -- Portability :  non-portable
 --
 -- This module contains Template Haskell code that can be used to
--- automatically generate the boilerplate code for the multiplate
+-- automatically generate the boilerplate code for the multirec
 -- library. The constructor information can be generated per datatype,
 -- the rest per family of datatypes.
 --
@@ -81,7 +81,7 @@
 deriveEl s ns =
   mapM (elInstance s) ns
 
--- | Dervie only the 'Fam' instance. Not needed if 'deriveFamily'
+-- | Derive only the 'Fam' instance. Not needed if 'deriveFamily'
 -- is used.
 
 deriveFam :: Name -> [Name] -> Q [Dec]
