diff --git a/Control/Applicative/Constrained.hs b/Control/Applicative/Constrained.hs
--- a/Control/Applicative/Constrained.hs
+++ b/Control/Applicative/Constrained.hs
@@ -11,6 +11,10 @@
 {-# LANGUAGE FlexibleContexts             #-}
 {-# LANGUAGE FlexibleInstances            #-}
 {-# LANGUAGE ScopedTypeVariables          #-}
+{-# LANGUAGE CPP                          #-}
+#if __GLASGOW_HASKELL__ >= 800
+{-# LANGUAGE UndecidableSuperClasses      #-}
+#endif
 
 
 module Control.Applicative.Constrained ( 
diff --git a/Control/Arrow/Constrained.hs b/Control/Arrow/Constrained.hs
--- a/Control/Arrow/Constrained.hs
+++ b/Control/Arrow/Constrained.hs
@@ -36,6 +36,10 @@
 {-# LANGUAGE FlexibleInstances            #-}
 {-# LANGUAGE FlexibleContexts             #-}
 {-# LANGUAGE UndecidableInstances         #-}
+{-# LANGUAGE CPP                          #-}
+#if __GLASGOW_HASKELL__ >= 800
+{-# LANGUAGE UndecidableSuperClasses      #-}
+#endif
 {-# LANGUAGE TypeOperators                #-}
 {-# LANGUAGE RankNTypes                   #-}
 {-# LANGUAGE AllowAmbiguousTypes          #-}
diff --git a/Control/Category/Constrained.hs b/Control/Category/Constrained.hs
--- a/Control/Category/Constrained.hs
+++ b/Control/Category/Constrained.hs
@@ -15,6 +15,11 @@
 {-# LANGUAGE RankNTypes                   #-}
 {-# LANGUAGE AllowAmbiguousTypes          #-}
 {-# LANGUAGE TypeOperators                #-}
+{-# LANGUAGE ExplicitNamespaces           #-}
+{-# LANGUAGE CPP                          #-}
+#if __GLASGOW_HASKELL__ >= 800
+{-# LANGUAGE UndecidableSuperClasses      #-}
+#endif
 
 module Control.Category.Constrained ( 
             -- * The category class
@@ -23,7 +28,7 @@
           , Cartesian (..), ObjectPair
           , Curry (..), ObjectMorphism
             -- * Monoidal with coproducts
-          , (+)()
+          , type (+)()
           , CoCartesian (..), ObjectSum
             -- * Isomorphisms
           , Isomorphic (..)
diff --git a/Control/Functor/Constrained.hs b/Control/Functor/Constrained.hs
--- a/Control/Functor/Constrained.hs
+++ b/Control/Functor/Constrained.hs
@@ -12,6 +12,10 @@
 {-# LANGUAGE FlexibleInstances            #-}
 {-# LANGUAGE FlexibleContexts             #-}
 {-# LANGUAGE UndecidableInstances         #-}
+{-# LANGUAGE CPP                          #-}
+#if __GLASGOW_HASKELL__ >= 800
+{-# LANGUAGE UndecidableSuperClasses      #-}
+#endif
 
 
 module Control.Functor.Constrained
diff --git a/Control/Monad/Constrained.hs b/Control/Monad/Constrained.hs
--- a/Control/Monad/Constrained.hs
+++ b/Control/Monad/Constrained.hs
@@ -10,6 +10,10 @@
 {-# LANGUAGE TypeOperators                #-}
 {-# LANGUAGE FlexibleContexts             #-}
 {-# LANGUAGE FlexibleInstances            #-}
+{-# LANGUAGE CPP                          #-}
+#if __GLASGOW_HASKELL__ >= 800
+{-# LANGUAGE UndecidableSuperClasses      #-}
+#endif
 {-# LANGUAGE ScopedTypeVariables          #-}
 {-# LANGUAGE TupleSections                #-}
 {-# LANGUAGE LambdaCase                   #-}
diff --git a/Data/Foldable/Constrained.hs b/Data/Foldable/Constrained.hs
--- a/Data/Foldable/Constrained.hs
+++ b/Data/Foldable/Constrained.hs
@@ -9,7 +9,10 @@
 {-# LANGUAGE FunctionalDependencies       #-}
 {-# LANGUAGE TypeOperators                #-}
 {-# LANGUAGE FlexibleContexts             #-}
-{-# LANGUAGE FlexibleContexts             #-}
+{-# LANGUAGE CPP                          #-}
+#if __GLASGOW_HASKELL__ >= 800
+{-# LANGUAGE UndecidableSuperClasses      #-}
+#endif
 {-# LANGUAGE KindSignatures               #-}
 {-# LANGUAGE ScopedTypeVariables          #-}
 {-# LANGUAGE TupleSections                #-}
diff --git a/Data/Traversable/Constrained.hs b/Data/Traversable/Constrained.hs
--- a/Data/Traversable/Constrained.hs
+++ b/Data/Traversable/Constrained.hs
@@ -10,6 +10,10 @@
 {-# LANGUAGE TypeOperators                #-}
 {-# LANGUAGE FlexibleContexts             #-}
 {-# LANGUAGE FlexibleInstances            #-}
+{-# LANGUAGE CPP                          #-}
+#if __GLASGOW_HASKELL__ >= 800
+{-# LANGUAGE UndecidableSuperClasses      #-}
+#endif
 {-# LANGUAGE ScopedTypeVariables          #-}
 {-# LANGUAGE TupleSections                #-}
 
diff --git a/constrained-categories.cabal b/constrained-categories.cabal
--- a/constrained-categories.cabal
+++ b/constrained-categories.cabal
@@ -1,5 +1,5 @@
 Name:                constrained-categories
-Version:             0.3.0.0
+Version:             0.3.0.1
 Category:            control
 Synopsis:            Constrained clones of the category-theory type classes, using ConstraintKinds.
 Description:         Haskell has, and makes great use of, powerful facilities from category
