diff --git a/focus.cabal b/focus.cabal
--- a/focus.cabal
+++ b/focus.cabal
@@ -1,7 +1,7 @@
 name:
   focus
 version:
-  1
+  1.0.1
 synopsis:
   A general abstraction for manipulating elements of container data structures
 description:
@@ -57,4 +57,5 @@
   other-modules:
     Focus.Prelude
   build-depends:
-    base >=4.6 && <5
+    base >=4.6 && <5,
+    transformers >=0.5 && <0.6
diff --git a/library/Focus.hs b/library/Focus.hs
--- a/library/Focus.hs
+++ b/library/Focus.hs
@@ -38,6 +38,9 @@
           Remove -> bAbsent
     in Focus sendNone sendSome
 
+instance MonadTrans (Focus element) where
+  lift m = Focus (fmap (,Leave) m) (const (fmap (,Leave) m))
+
 {-|
 What to do with the focused value.
 
diff --git a/library/Focus/Prelude.hs b/library/Focus/Prelude.hs
--- a/library/Focus/Prelude.hs
+++ b/library/Focus/Prelude.hs
@@ -67,3 +67,7 @@
 import Text.Printf as Exports (printf, hPrintf)
 import Text.Read as Exports (Read(..), readMaybe, readEither)
 import Unsafe.Coerce as Exports
+
+-- transformers
+-------------------------
+import Control.Monad.Trans.Class as Exports
