diff --git a/Control/Applicative/Constrained.hs b/Control/Applicative/Constrained.hs
--- a/Control/Applicative/Constrained.hs
+++ b/Control/Applicative/Constrained.hs
@@ -2,7 +2,7 @@
 -- Module      :  Control.Applicative.Constrained
 -- Copyright   :  (c) 2013 Justus Sagemüller
 -- License     :  GPL v3 (see COPYING)
--- Maintainer  :  (@) sagemueller $ geo.uni-koeln.de
+-- Maintainer  :  (@) jsag $ hvl.no
 -- 
 {-# LANGUAGE ConstraintKinds              #-}
 {-# LANGUAGE TypeFamilies                 #-}
diff --git a/Control/Arrow/Constrained.hs b/Control/Arrow/Constrained.hs
--- a/Control/Arrow/Constrained.hs
+++ b/Control/Arrow/Constrained.hs
@@ -2,7 +2,7 @@
 -- Module      :  Control.Arrow.Constrained
 -- Copyright   :  (c) 2013 Justus Sagemüller
 -- License     :  GPL v3 (see COPYING)
--- Maintainer  :  (@) sagemueller $ geo.uni-koeln.de
+-- Maintainer  :  (@) jsag $ hvl.no
 -- 
 -- Haskell's 'Arr.Arrow's, going back to [Hughes 2000], combine multiple ideas from
 -- category theory:
diff --git a/Control/Category/Constrained.hs b/Control/Category/Constrained.hs
--- a/Control/Category/Constrained.hs
+++ b/Control/Category/Constrained.hs
@@ -2,13 +2,14 @@
 -- Module      :  Control.Category.Constrained
 -- Copyright   :  (c) 2013-2016 Justus Sagemüller
 -- License     :  GPL v3 (see COPYING)
--- Maintainer  :  (@) sagemueller $ geo.uni-koeln.de
+-- Maintainer  :  (@) jsag $ hvl.no
 -- 
 -- 
 -- The most basic category theory tools are included partly in this
 -- module, partly in "Control.Arrow.Constrained".
 
 {-# LANGUAGE ConstraintKinds              #-}
+{-# LANGUAGE PolyKinds                    #-}
 {-# LANGUAGE TypeFamilies                 #-}
 {-# LANGUAGE MultiParamTypeClasses        #-}
 {-# LANGUAGE FlexibleContexts             #-}
@@ -56,6 +57,9 @@
 import Data.Tagged
 import Data.Monoid
 import Data.Void
+#if MIN_VERSION_base(4,9,0)
+import Data.Kind (Type)
+#endif
 import Data.Type.Coercion
 import qualified Control.Category as Hask
 import qualified Data.Functor.Contravariant as Hask (Op(..))
@@ -77,8 +81,12 @@
 --   /morphism type constructor/. From a mathematician's point of view this may
 --   seem a bit strange way to define the category, but it just turns out to
 --   be quite convenient for practical purposes.
-class Category k where
-  type Object k o :: Constraint
+#if MIN_VERSION_base(4,9,0)
+class Category (k :: κ -> κ -> Type) where
+#else
+class Category (k :: κ -> κ -> *) where
+#endif
+  type Object k (o :: κ) :: Constraint
   type Object k o = ()
   id :: Object k a => k a a
   (.) :: (Object k a, Object k b, Object k c) 
diff --git a/Control/Category/Constrained/Prelude.hs b/Control/Category/Constrained/Prelude.hs
--- a/Control/Category/Constrained/Prelude.hs
+++ b/Control/Category/Constrained/Prelude.hs
@@ -2,7 +2,7 @@
 -- Module      :  Control.Category.Constrained.Prelude
 -- Copyright   :  (c) 2013 Justus Sagemüller
 -- License     :  GPL v3 (see COPYING)
--- Maintainer  :  (@) sagemueller $ geo.uni-koeln.de
+-- Maintainer  :  (@) jsag $ hvl.no
 -- 
 
 {-# LANGUAGE ConstraintKinds              #-}
@@ -23,7 +23,7 @@
                       , Functor(..), (<$>), Applicative(..), (<*>), Monad(..), (=<<), filter
                       , mapM, mapM_, sequence, sequence_
                       , Foldable, foldMap, fold, traverse_, concatMap
-                      , Traversable, traverse )
+                      , Traversable, traverse, MonadFail(..) )
 
 import Control.Category.Constrained hiding (ConstrainedMorphism)
 import Control.Functor.Constrained
diff --git a/Control/Category/Constrained/Reified.hs b/Control/Category/Constrained/Reified.hs
--- a/Control/Category/Constrained/Reified.hs
+++ b/Control/Category/Constrained/Reified.hs
@@ -2,7 +2,7 @@
 -- Module      :  Control.Category.Constrained.Reified
 -- Copyright   :  (c) 2016 Justus Sagemüller
 -- License     :  GPL v3 (see COPYING)
--- Maintainer  :  (@) sagemueller $ geo.uni-koeln.de
+-- Maintainer  :  (@) jsag $ hvl.no
 -- 
 -- 
 -- GADTs that mirror the class hierarchy from 'Category' to (at the moment) 'Cartesian',
diff --git a/Control/Category/Constrained/Reified/PolyPattern.hs b/Control/Category/Constrained/Reified/PolyPattern.hs
--- a/Control/Category/Constrained/Reified/PolyPattern.hs
+++ b/Control/Category/Constrained/Reified/PolyPattern.hs
@@ -2,7 +2,7 @@
 -- Module      :  Control.Category.Constrained.Reified.PolyPattern
 -- Copyright   :  (c) 2016 Justus Sagemüller
 -- License     :  GPL v3 (see COPYING)
--- Maintainer  :  (@) sagemueller $ geo.uni-koeln.de
+-- Maintainer  :  (@) jsag $ hvl.no
 -- 
 -- 
 -- Pattern synonyms which allow you to deconstruct the various types
diff --git a/Control/Category/Discrete.hs b/Control/Category/Discrete.hs
--- a/Control/Category/Discrete.hs
+++ b/Control/Category/Discrete.hs
@@ -2,7 +2,7 @@
 -- Module      :  Control.Category.Discrete
 -- Copyright   :  (c) 2018 Justus Sagemüller
 -- License     :  GPL v3 (see COPYING)
--- Maintainer  :  (@) sagemueller $ geo.uni-koeln.de
+-- Maintainer  :  (@) jsag $ hvl.no
 -- 
 -- 
 {-# LANGUAGE GADTs                #-}
diff --git a/Control/Category/Hask.hs b/Control/Category/Hask.hs
--- a/Control/Category/Hask.hs
+++ b/Control/Category/Hask.hs
@@ -2,7 +2,7 @@
 -- Module      :  Control.Category.Hask
 -- Copyright   :  (c) 2013 Justus Sagemüller
 -- License     :  GPL v3 (see COPYING)
--- Maintainer  :  (@) sagemueller $ geo.uni-koeln.de
+-- Maintainer  :  (@) jsag $ hvl.no
 -- 
 -- Re-exports of all the common category-theory inspired classes from the
 -- "base" package, i.e. basically endofunctors in the Hask category (with
diff --git a/Control/Functor/Constrained.hs b/Control/Functor/Constrained.hs
--- a/Control/Functor/Constrained.hs
+++ b/Control/Functor/Constrained.hs
@@ -2,7 +2,7 @@
 -- Module      :  Control.Functor.Constrained
 -- Copyright   :  (c) 2014 Justus Sagemüller
 -- License     :  GPL v3 (see COPYING)
--- Maintainer  :  (@) sagemueller $ geo.uni-koeln.de
+-- Maintainer  :  (@) jsag $ hvl.no
 -- 
 
 {-# LANGUAGE ConstraintKinds              #-}
diff --git a/Control/Monad/Constrained.hs b/Control/Monad/Constrained.hs
--- a/Control/Monad/Constrained.hs
+++ b/Control/Monad/Constrained.hs
@@ -2,7 +2,7 @@
 -- Module      :  Control.Monad.Constrained
 -- Copyright   :  (c) 2013 Justus Sagemüller
 -- License     :  GPL v3 (see COPYING)
--- Maintainer  :  (@) sagemueller $ geo.uni-koeln.de
+-- Maintainer  :  (@) jsag $ hvl.no
 -- 
 {-# LANGUAGE ConstraintKinds              #-}
 {-# LANGUAGE TypeFamilies                 #-}
@@ -43,11 +43,12 @@
 
 import Prelude hiding (
      id, const, fst, snd, (.), ($)
-   , Functor(..), Applicative(..), Monad(..), (=<<)
+   , Functor(..), Applicative(..), Monad(..), MonadFail(..), (=<<)
    , uncurry, curry, filter
    , mapM, mapM_, sequence, sequence_
    )
 import qualified Control.Category.Hask as Hask
+import qualified Control.Monad.Fail as HaskFail
 
 import Control.Arrow.Constrained
 
@@ -131,7 +132,8 @@
 class (MonadPlus m k) => MonadFail m k where
   fail :: (Object k (m a)) => k String (m a) 
 
-instance (Hask.MonadPlus m, Hask.Applicative m) => MonadFail m (->) where
+instance (Hask.MonadPlus m, Hask.Applicative m, HaskFail.MonadFail m) 
+          => MonadFail m (->) where
   fail = Hask.fail
   
 
diff --git a/Data/Foldable/Constrained.hs b/Data/Foldable/Constrained.hs
--- a/Data/Foldable/Constrained.hs
+++ b/Data/Foldable/Constrained.hs
@@ -2,7 +2,7 @@
 -- Module      :  Data.Foldable.Constrained
 -- Copyright   :  (c) 2014 Justus Sagemüller
 -- License     :  GPL v3 (see COPYING)
--- Maintainer  :  (@) sagemueller $ geo.uni-koeln.de
+-- Maintainer  :  (@) jsag $ hvl.no
 -- 
 {-# LANGUAGE ConstraintKinds              #-}
 {-# LANGUAGE TypeFamilies                 #-}
diff --git a/Data/Traversable/Constrained.hs b/Data/Traversable/Constrained.hs
--- a/Data/Traversable/Constrained.hs
+++ b/Data/Traversable/Constrained.hs
@@ -2,7 +2,7 @@
 -- Module      :  Data.Traversable.Constrained
 -- Copyright   :  (c) 2014 Justus Sagemüller
 -- License     :  GPL v3 (see COPYING)
--- Maintainer  :  (@) sagemueller $ geo.uni-koeln.de
+-- Maintainer  :  (@) jsag $ hvl.no
 -- 
 {-# LANGUAGE ConstraintKinds              #-}
 {-# LANGUAGE TypeFamilies                 #-}
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.4.0.0
+Version:             0.4.1.0
 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
@@ -27,7 +27,7 @@
 License:             GPL-3
 License-file:        COPYING
 Author:              Justus Sagemüller
-Maintainer:          (@) sagemueller $ geo.uni-koeln.de
+Maintainer:          (@) jsag $ hvl.no
 Homepage:            https://github.com/leftaroundabout/constrained-categories
 Build-Type:          Simple
 Cabal-Version:       >=1.10
@@ -40,11 +40,12 @@
 
 Library
   Default-Language:   Haskell2010
-  Build-Depends:      base>=4.7 && <5
+  Build-Depends:      base>=4.8 && <5
                       , tagged
                       , void
                       , semigroups
                       , contravariant
+                      , fail
                       , trivial-constraint >= 0.4 && < 0.5
   Default-Extensions: ConstraintKinds
                       TypeFamilies
