diff --git a/src/Control/Monad/Base.hs b/src/Control/Monad/Base.hs
--- a/src/Control/Monad/Base.hs
+++ b/src/Control/Monad/Base.hs
@@ -28,7 +28,7 @@
 import Control.Monad.Trans.Cont
 
 class (Applicative μ, Monad μ,
-       Applicative η, Monad η) ⇒ MonadBase μ η | μ → η where
+       Applicative η, Monad η) ⇒ MonadBase η μ | μ → η where
   -- | Lift a computation from the base monad
   liftBase ∷ η α → μ α
 
@@ -40,28 +40,28 @@
 instance MonadBase (L.ST s) (L.ST s)     where liftBase = id
 instance MonadBase (S.ST s) (S.ST s)     where liftBase = id
 
-instance MonadBase μ η ⇒ MonadBase (IdentityT μ) η where
+instance MonadBase η μ ⇒ MonadBase η (IdentityT μ) where
   liftBase = lift . liftBase
-instance MonadBase μ η ⇒ MonadBase (MaybeT μ) η where
+instance MonadBase η μ ⇒ MonadBase η (MaybeT μ) where
   liftBase = lift . liftBase
-instance MonadBase μ η ⇒ MonadBase (ListT μ) η where
+instance MonadBase η μ ⇒ MonadBase η (ListT μ) where
   liftBase = lift . liftBase
-instance MonadBase μ η ⇒ MonadBase (ReaderT r μ) η where
+instance MonadBase η μ ⇒ MonadBase η (ReaderT r μ) where
   liftBase = lift . liftBase
-instance (Monoid w, MonadBase μ η) ⇒ MonadBase (L.WriterT w μ) η where
+instance (Monoid w, MonadBase η μ) ⇒ MonadBase η (L.WriterT w μ) where
   liftBase = lift . liftBase
-instance (Monoid w, MonadBase μ η) ⇒ MonadBase (S.WriterT w μ) η where
+instance (Monoid w, MonadBase η μ) ⇒ MonadBase η (S.WriterT w μ) where
   liftBase = lift . liftBase
-instance MonadBase μ η ⇒ MonadBase (L.StateT s μ) η where
+instance MonadBase η μ ⇒ MonadBase η (L.StateT s μ) where
   liftBase = lift . liftBase
-instance MonadBase μ η ⇒ MonadBase (S.StateT s μ) η where
+instance MonadBase η μ ⇒ MonadBase η (S.StateT s μ) where
   liftBase = lift . liftBase
-instance (Monoid w, MonadBase μ η) ⇒ MonadBase (L.RWST r w s μ) η where
+instance (Monoid w, MonadBase η μ) ⇒ MonadBase η (L.RWST r w s μ) where
   liftBase = lift . liftBase
-instance (Monoid w, MonadBase μ η) ⇒ MonadBase (S.RWST r w s μ) η where
+instance (Monoid w, MonadBase η μ) ⇒ MonadBase η (S.RWST r w s μ) where
   liftBase = lift . liftBase
-instance (Error e, MonadBase μ η) ⇒ MonadBase (ErrorT e μ) η where
+instance (Error e, MonadBase η μ) ⇒ MonadBase η (ErrorT e μ) where
   liftBase = lift . liftBase
-instance MonadBase μ η ⇒ MonadBase (ContT r μ) η where
+instance MonadBase η μ ⇒ MonadBase η (ContT r μ) where
   liftBase = lift . liftBase
 
diff --git a/src/Control/Monad/Base/Control.hs b/src/Control/Monad/Base/Control.hs
--- a/src/Control/Monad/Base/Control.hs
+++ b/src/Control/Monad/Base/Control.hs
@@ -28,60 +28,60 @@
 import qualified Control.Monad.Trans.RWS.Strict as S
 import Control.Monad.Trans.Control
 
-class MonadBase μ η ⇒ MonadBaseControl μ η | μ → η where
+class MonadBase η μ ⇒ MonadBaseControl η μ | μ → η where
   -- | Helper for lifting control operations from the base monad.
   liftBaseControl ∷ (RunInBase μ η → η α) → μ α
 
 instance MonadBaseControl IO IO where
   liftBaseControl = idLiftControl
 
-instance MonadBaseControl μ η ⇒ MonadBaseControl (IdentityT μ) η where
+instance MonadBaseControl η μ ⇒ MonadBaseControl η (IdentityT μ) where
   liftBaseControl = liftLiftControlBase liftBaseControl
 
-instance MonadBaseControl μ η ⇒ MonadBaseControl (MaybeT μ) η where
+instance MonadBaseControl η μ ⇒ MonadBaseControl η (MaybeT μ) where
   liftBaseControl = liftLiftControlBase liftBaseControl
 
-instance (Error e, MonadBaseControl μ η)
-       ⇒ MonadBaseControl (ErrorT e μ) η where
+instance (Error e, MonadBaseControl η μ)
+       ⇒ MonadBaseControl η (ErrorT e μ) where
   liftBaseControl = liftLiftControlBase liftBaseControl
 
-instance MonadBaseControl μ η ⇒ MonadBaseControl (ListT μ) η where
+instance MonadBaseControl η μ ⇒ MonadBaseControl η (ListT μ) where
   liftBaseControl = liftLiftControlBase liftBaseControl
 
-instance MonadBaseControl μ η ⇒ MonadBaseControl (ReaderT r μ) η where
+instance MonadBaseControl η μ ⇒ MonadBaseControl η (ReaderT r μ) where
   liftBaseControl = liftLiftControlBase liftBaseControl
 
-instance (Monoid w, MonadBaseControl μ η)
-       ⇒ MonadBaseControl (L.WriterT w μ) η where
+instance (Monoid w, MonadBaseControl η μ)
+       ⇒ MonadBaseControl η (L.WriterT w μ) where
   liftBaseControl = liftLiftControlBase liftBaseControl
 
-instance (Monoid w, MonadBaseControl μ η)
-       ⇒ MonadBaseControl (S.WriterT w μ) η where
+instance (Monoid w, MonadBaseControl η μ)
+       ⇒ MonadBaseControl η (S.WriterT w μ) where
   liftBaseControl = liftLiftControlBase liftBaseControl
 
-instance MonadBaseControl μ η ⇒ MonadBaseControl (L.StateT s μ) η where
+instance MonadBaseControl η μ ⇒ MonadBaseControl η (L.StateT s μ) where
   liftBaseControl = liftLiftControlBase liftBaseControl
 
-instance MonadBaseControl μ η ⇒ MonadBaseControl (S.StateT s μ) η where
+instance MonadBaseControl η μ ⇒ MonadBaseControl η (S.StateT s μ) where
   liftBaseControl = liftLiftControlBase liftBaseControl
 
-instance (Monoid w, MonadBaseControl μ η)
-       ⇒ MonadBaseControl (L.RWST r w s μ) η where
+instance (Monoid w, MonadBaseControl η μ)
+       ⇒ MonadBaseControl η (L.RWST r w s μ) where
   liftBaseControl = liftLiftControlBase liftBaseControl
 
-instance (Monoid w, MonadBaseControl μ η)
-       ⇒ MonadBaseControl (S.RWST r w s μ) η where
+instance (Monoid w, MonadBaseControl η μ)
+       ⇒ MonadBaseControl η (S.RWST r w s μ) where
   liftBaseControl = liftLiftControlBase liftBaseControl
 
-controlBase ∷ MonadBaseControl μ η ⇒ (RunInBase μ η → η (μ α)) → μ α
+controlBase ∷ MonadBaseControl η μ ⇒ (RunInBase μ η → η (μ α)) → μ α
 controlBase = join . liftBaseControl
 
-liftBaseOp ∷ MonadBaseControl μ η
+liftBaseOp ∷ MonadBaseControl η μ
            ⇒ ((α → η (μ β)) → η (μ γ))
            →  (α →    μ β ) →    μ γ
 liftBaseOp base m = controlBase $ \runInBase → base $ runInBase . m
 
-liftBaseOp_ ∷ MonadBaseControl μ η
+liftBaseOp_ ∷ MonadBaseControl η μ
            ⇒ (η (μ β) → η (μ γ))
            →     μ β  →    μ γ
 liftBaseOp_ base m = controlBase $ \runInBase → base $ runInBase m
diff --git a/transformers-base.cabal b/transformers-base.cabal
--- a/transformers-base.cabal
+++ b/transformers-base.cabal
@@ -1,5 +1,5 @@
 Name: transformers-base
-Version: 0.2
+Version: 0.3
 Category: Control
 Stability: experimental
 Synopsis: Lift computations from the bottom of a transformer stack
