diff --git a/Control/Monad/Trans/Key.hs b/Control/Monad/Trans/Key.hs
--- a/Control/Monad/Trans/Key.hs
+++ b/Control/Monad/Trans/Key.hs
@@ -1,13 +1,13 @@
 {-# LANGUAGE RankNTypes #-}
 {-# LANGUAGE GeneralizedNewtypeDeriving #-}
 
-module Control.Monad.Trans.Key (Key, newKey, Keyring, unKeyring, KeyringT, unKeyringT) where
+module Control.Monad.Trans.Key (Key, newKey, Keyring, unKeyring, KeyringT, unKeyringT, lift) where
 
 import Control.Applicative
 import Control.Monad (MonadPlus (..), guard)
 import Control.Monad.Fail
 import Control.Monad.Fix
-import Control.Monad.Trans.Class
+import Control.Monad.Trans.Class (MonadTrans)
 import Control.Monad.Trans.Reader
 import Data.Functor.Identity
 import Data.IORef
@@ -31,6 +31,9 @@
 
 newtype KeyringT s f a = KeyringT (ReaderT (IORef Natural) f a)
   deriving (Functor, Applicative, Alternative, Monad, MonadPlus, MonadFix, MonadFail, MonadTrans)
+
+lift :: f a -> KeyringT s f a
+lift = KeyringT . ReaderT . pure
 
 unKeyringT :: (∀ s . KeyringT s f a) -> f a
 unKeyringT (KeyringT (ReaderT f)) = f $ unsafePerformIO $ newIORef 0
diff --git a/Setup.hs b/Setup.hs
deleted file mode 100644
--- a/Setup.hs
+++ /dev/null
@@ -1,2 +0,0 @@
-import Distribution.Simple
-main = defaultMain
diff --git a/key.cabal b/key.cabal
--- a/key.cabal
+++ b/key.cabal
@@ -1,5 +1,5 @@
 name:                key
-version:             0.1.1.0
+version:             0.1.2.0
 synopsis:            Type-safe unconstrained dynamic typing
 description:         A library of monadic typed keys which can be compared for equality, returning an equality proof if equal.
 
