module Control.Monad.Scoped
(
Internal.Scoped
, Internal.ScopedResource
, Internal.scoped
, Internal.registerHandler
, (Internal.:<)
, ScopedAsync.ScopedAsync
, ScopedAsync.async
, ScopedAsync.asyncBound
, ScopedAsync.wait
, ScopedAsync.waitCatch
, ScopedAsync.waitScoped
, ScopedAsync.waitCatchScoped
, ScopedHandle.ScopedHandle
, ScopedHandle.file
, IO.IOMode (..)
, ScopedHandle.hPutStrLn
, ScopedHandle.hPutStr
, ScopedHandle.hGetLine
, ScopedHandle.hGetContents
, ScopedTemp.tempFile
, ScopedTemp.systemTempFile
, ScopedPtr.Ptr
, ScopedPtr.mut
, (ScopedPtr..=)
, (ScopedPtr.?)
)
where
import Control.Monad.Scoped.Async qualified as ScopedAsync
import Control.Monad.Scoped.Handle qualified as ScopedHandle
import Control.Monad.Scoped.Internal qualified as Internal
import Control.Monad.Scoped.Ptr qualified as ScopedPtr
import Control.Monad.Scoped.Temp qualified as ScopedTemp
import System.IO qualified as IO