diff --git a/managed.cabal b/managed.cabal
--- a/managed.cabal
+++ b/managed.cabal
@@ -1,5 +1,5 @@
 Name: managed
-Version: 1.0.0
+Version: 1.0.1
 Cabal-Version: >=1.8.0.2
 Build-Type: Simple
 License: BSD3
diff --git a/src/Control/Monad/Managed.hs b/src/Control/Monad/Managed.hs
--- a/src/Control/Monad/Managed.hs
+++ b/src/Control/Monad/Managed.hs
@@ -62,7 +62,7 @@
     `Foreign.Marshal.Utils.withMany` function from "Foreign.Marshal.Utils"
     becomes a trivial wrapper around `mapM`:
 
-> withMany :: (a -> (b -> IO r) -> IOr ) -> [a] -> ([b] -> IO r) -> IO r
+> withMany :: (a -> (b -> IO r) -> IO r) -> [a] -> ([b] -> IO r) -> IO r
 > withMany f = with . mapM (Managed . f)
 
     Another reason to use `Managed` is that if you wrap a `Monoid` value in
@@ -79,6 +79,7 @@
     -- * Managed
     Managed,
     managed,
+    managed_,
     with,
     runManaged,
 
@@ -164,6 +165,10 @@
 -- | Build a `Managed` value
 managed :: (forall r . (a -> IO r) -> IO r) -> Managed a
 managed = Managed
+
+-- | Like 'managed' but for resource-less operations.
+managed_ :: (forall r. IO r -> IO r) -> Managed ()
+managed_ f = managed $ \g -> f $ g ()
 
 -- | Acquire a `Managed` value
 with :: Managed a -> (a -> IO r) -> IO r
diff --git a/src/Control/Monad/Managed/Safe.hs b/src/Control/Monad/Managed/Safe.hs
--- a/src/Control/Monad/Managed/Safe.hs
+++ b/src/Control/Monad/Managed/Safe.hs
@@ -18,6 +18,7 @@
     -- * Managed
     Managed,
     managed,
+    managed_,
     runManaged,
 
     -- * Re-exports
@@ -26,7 +27,7 @@
     ) where
 
 import Control.Monad.IO.Class (MonadIO(liftIO))
-import Control.Monad.Managed (Managed, managed, runManaged)
+import Control.Monad.Managed (Managed, managed, managed_, runManaged)
 
 {- $reexports
     "Control.Monad.IO.Class" re-exports 'MonadIO'
