śĪkŠd’+      !"#$%&'()*None A Monad2 based on some monad which allows running of some + actions, # via unsafe calls. This applies to + and ,, for instance.  Since 0.3.0 8The express purpose of this transformer is to allow non-IO -based monad $ stacks to catch exceptions via the   typeclass.  Since 0.3.0 CIndicates either an error in the library, or misuse of it (e.g., a   ResourceT'+s state is accessed after being released).  Since 0.3.0 IThe Resource transformer. This transformer keeps track of all registered ( actions, and calls them upon exit (via  runResourceT). Actions may be  registered via register/, or resources may be allocated atomically via  allocate. allocate corresponds closely to bracket. /Releasing may be performed before exit via the release function. This is a N highly recommended optimization, as it will ensure that scarce resources are  freed early. Note that calling release% will deregister the action, so that 1 a release action will only ever be called once.  Since 0.3.0 A Monad? which can throw exceptions. Note that this does not work in a  vanilla ST or Identity$ monad. Instead, you should use the  9 transformer in your stack if you are dealing with a non-IO base monad.  Since 0.3.0 Convenient alias for  ResourceT IO. FA lookup key for a specific release action. This value is returned by  register and allocate, and is passed to release.  Since 0.3.0 A MonadA which allows for safe resource allocation. In theory, any monad  transformer stack included a  ResourceT can be an instance of   MonadResource. Note:  runResourceT has a requirement for a MonadBaseControl IO m monad, 1 which allows control operations to be lifted. A  MonadResource does not = have this requirement. This means that transformers such as ContT can be  an instance of  MonadResource. However, the ContT wrapper will need to be  unwrapped before calling  runResourceT.  Since 0.3.0 Lift a  ResourceT IO action into the current Monad.  Since 0.4.0 Transform the monad a  ResourceT& lives in. This is most often used to 9 strip or add new transformers to a stack, e.g. to run a ReaderT. 6Note that this function is a slight generalization of -.  Since 0.3.0 . Since 0.4.7 / Since 0.4.7 a 0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^./_`abcdefghijklmnopqrstuv   U   0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^./_`abcdefghijklmnopqrstuvNoneThe internal state held by a  ResourceT transformer.  Since 0.4.6 A Monad# which can be used as a base for a  ResourceT. A  ResourceT* has some restrictions on its base monad:   runResourceT requires an instance of MonadBaseControl IO.  *  MonadResource requires an instance of  MonadThrow,  MonadUnsafeIO, MonadIO, and  Applicative. While any instance of MonadBaseControl IO should be an instance of the N other classes, this is not guaranteed by the type system (e.g., you may have 5 a transformer in your stack with does not implement  MonadThrow ). Ideally, K we would like to simply create an alias for the five type classes listed, . but this is not possible with GHC currently. MInstead, this typeclass acts as a proxy for the other five. Its only purpose * is to make your type signatures shorter. Note that earlier versions of conduit had a typeclass  ResourceIO. This  fulfills much the same role.  Since 0.3.2 KDetermine if some monad is still active. This is intended to prevent usage J of a monadic state after it has been closed. This is necessary for such  cases as lazy I/3O, where an unevaluated thunk may still refer to a  closed  ResourceT.  Since 0.3.0 ERegister some action that will be called precisely once, either when  " is called, or when the  is passed to .  Since 0.3.0 HCall a release action early, and deregister it from the list of cleanup  actions to be performed.  Since 0.3.0 BUnprotect resource from cleanup actions, this allowes you to send B resource into another resourcet process and reregister it there. D It returns an release action that should be run in order to clean ; resource or Nothing in case if resource is already freed.  Since 0.4.5 FPerform some allocation, and automatically register a cleanup action. <This is almost identical to calling the allocation and then  register=ing the release action, but this properly handles masking of  asynchronous exceptions.  Since 0.3.0 !(Perform asynchronous exception masking. This is more general then Control.Exception.mask, yet more efficient  than Control.Exception.Lifted.mask.  Since 0.3.0 " Unwrap a  7 transformer, and call all registered release actions. ;Note that there is some reference counting involved due to '. L If multiple threads are sharing the same collection of resources, only the  last call to  runResourceT will deallocate the resources.  Since 0.3.0 #This function mirrors join, at the transformer level: it will collapse  two levels of  ResourceT into a single  ResourceT.  Since 0.4.6 $Same as , but immediately w any exception returned.  Since 0.3.0 %Run an ExceptionT Identity stack.  Since 0.4.2 &Run an ExceptionT Identity stack, but immediately w any exception returned.  Since 0.4.2 'HIntroduce a reference-counting scheme to allow a resource context to be G shared by multiple threads. Once the last thread exits, all remaining  resources will be released. HNote that abuse of this function will greatly delay the deallocation of I registered resources. This function should be used with care. A general  guideline: LIf you are allocating a resource that should be shared by multiple threads, N and will be held for a long time, you should allocate it at the beginning of  a new  ResourceT block and then call resourceForkIO from there.  Since 0.3.0 (&Get the internal state of the current  ResourceT.  Since 0.4.6 ) Unwrap a  ResourceT using the given  InternalState.  Since 0.4.6 *8Run an action in the underlying monad, providing it the  InternalState.  Since 0.4.6 (  allocate free resource !xyz{|"}#$%&'()*~€‚ƒ„…†‡ˆ‰Š‹Œ#  !"#$%&'()*# "'#$%& ! ()*' !xyz{|"}#$%&'()*~€‚ƒ„…†‡ˆ‰Š‹ŒŽ        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|.}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•resourcet-0.4.8Control.Monad.Trans.Resource%Control.Monad.Trans.Resource.Internalmonad-control-0.3.2.1Control.Monad.Trans.ControlMonadBaseControl MonadUnsafeIO unsafeLiftIO ExceptionT runExceptionT InvalidAccess functionName ResourceT unResourceT MonadThrow monadThrowResIO ReleaseMapReleaseMapClosed ReleaseKey MonadResource liftResourceTtransResourceT stateAlloc stateCleanup InternalStateMonadResourceBase MonadActive monadActiveregisterrelease unprotectallocate resourceMask runResourceT joinResourceTrunExceptionT_ runException runException_resourceForkIOgetInternalStaterunInternalStatewithInternalStateghc-prim GHC.TypesIObaseGHC.STST mmorph-1.0.0Control.Monad.Morphhoist$fMMonadResourceT$fMFunctorResourceTNextKeyRefCount mapResourceT mapExceptionT$fMonadWriterwExceptionT$fMonadStatesExceptionT$fMonadReaderrExceptionT$fMonadRWSrwsExceptionT$fMonadErroreExceptionT$fMonadContExceptionT$fMonadBaseControlbExceptionT$fMonadTransControlExceptionT$fMonadTransExceptionT$fMonadBasebExceptionT$fMonadExceptionT$fApplicativeExceptionT$fFunctorExceptionT$fMonadUnsafeIOt$fMonadUnsafeIOST$fMonadUnsafeIOST0$fMonadUnsafeIOIO$fMonadResourceWriterT$fMonadResourceStateT$fMonadResourceRWST$fMonadResourceRWST0$fMonadResourceWriterT0$fMonadResourceStateT0$fMonadResourceContT$fMonadResourceReaderT$fMonadResourceErrorT$fMonadResourceMaybeT$fMonadResourceListT$fMonadResourceIdentityT$fMonadIOExceptionT$fMonadResourceExceptionT$fMonadThrowExceptionT$fMonadBaseControlbResourceT$fMonadTransControlResourceT$fMonadBasebResourceT$fMonadIOResourceT$fMonadTransResourceT$fMonadResourceT$fApplicativeResourceT$fFunctorResourceT$fExceptionInvalidAccess$fShowInvalidAccess$fTypeable1ResourceT$fMonadResourceResourceT$fMonadThrowWriterT$fMonadThrowStateT$fMonadThrowRWST$fMonadThrowRWST0$fMonadThrowWriterT0$fMonadThrowStateT0$fMonadThrowResourceT$fMonadThrowContT$fMonadThrowReaderT$fMonadThrowErrorT$fMonadThrowMaybeT$fMonadThrowListT$fMonadThrowIdentityT$fMonadThrow[]$fMonadThrowEither$fMonadThrowMaybe$fMonadThrowIO$fMonadWriterwResourceT$fMonadStatesResourceT$fMonadReaderrResourceT$fMonadRWSrwsResourceT$fMonadErroreResourceT$fMonadContResourceT GHC.Exceptionthrow allocateRIO registerRIOresourceMaskRIO register'release'bracket_$fMonadActiveWriterT$fMonadActiveStateT$fMonadActiveRWST$fMonadActiveRWST0$fMonadActiveWriterT0$fMonadActiveStateT0$fMonadActiveReaderT$fMonadActiveErrorT$fMonadActiveMaybeT$fMonadActiveListT$fMonadActiveIdentityT$fMonadActiveST$fMonadActiveST0$fMonadActiveIO$fMonadActiveIdentity$fMonadActiveResourceT