module Control.Monad.Pool (WithResource, withResource, tryWithResource, runPooled, runDedicated) where import qualified Control.Monad.Trans.Pool as T import Data.Pool (Pool) newtype WithResource r a = WithResource (T.WithResource r a) runPooled :: WithResource r a -> Pool r -> IO a runPooled (WithResource m) = T.runPooled m runDedicated :: WithResource r a -> r -> IO a runDedicated (WithResource m) = T.runDedicated m withResource :: (r -> IO a) -> WithResource r a withResource = WithResource . T.withResource tryWithResource :: (r -> IO a) -> WithResource r (Maybe a) tryWithResource = WithResource . T.tryWithResource