h,5      !"#$%&'()*+,-./012340.1.0.2None-01: )scoped-codensitythe  class is there to give overloading to blocks, s.t. we don't have to run different functions depending on whether we run a final block or not.This type class is internal since there should not be any more instances and since it is expected that the contraint on  is immediately dischargedscoped-codensityRun a   block safely, making sure that none of the safely allocated resources can escape it, using the same trick as All of the allocated resources will live until the end of the block is reachedscoped-codensitywhen using a resource, all that matters is that the resource can only be used in the scope that it was created in or any scope that is farther in than that scopeThis constraint has to be put to connect the resource and the scope that it was created inscoped-codensityA scoped resource with token s belonging to a   block with the same token.If you are creating a ;, make sure the resource is deallocated properly when the   block is exited. Unsafely runs a scoped resource. It forgets the scope of the resource and may now be escaped incorrectly scoped-codensityThe   monad that provides the possibility to safely scope the allocation of a resourceIt is used to abstract over all of the CPS style withSomething functions, like  3Be sure to properly mask handlers if you are using  ". Use safe helper functions like  or  where possible.Scoped also works for wrapping unboxed and unlifted monad transformers. "Unsafely runs a scoped block. Use * instead, otherwise resources might escapescoped-codensity2Run a handler masked for async exception when the   block ends,You can register a handler wherever in your   block you want, but it will nonetheless be run in reverse order that the handlers have been registered, after the scoped block's actions have been finishedscoped-codensityA wrapper around  $ to allocate a resource safely in a   block It returns a  that belongs to the   block it was allocated inscoped-codensityYou can use all the actions you can use in the underlying monad m also in the   monad by 5 ing into it.scoped-codensityYou can 6 in a Scoped blockscoped-codensityYou can perform 7 in a scoped block, but it does not inherit its safety guaranteesscoped-codensityscoped-codensityscoped-codensityscoped-codensityscoped-codensitythe handler to be registered,an action that allocates a resource of type a.an action that deallocates a resource of type a     None-01: scoped-codensity Just like   but bound to a   block!scoped-codensityGiven a 8%, safely allocates and deallocates a   in a   block"scoped-codensityLike   but for  #scoped-codensityLike   but for  $scoped-codensityLike   but for  %scoped-codensityLike   but for  !%$#" !"#$%None-01:&scoped-codensity Just like 9 but bound to a   block'scoped-codensityRun an 73 action asynchronously in a Scoped block. When the   block ends, the 9 is led(scoped-codensityLike ' but uses  internally)scoped-codensity Wait for the & to finish immediately*scoped-codensityLike ) but return either : ; or < a+scoped-codensityLike )) but wait as part of the handlers of the   block,scoped-codensityLike *) but wait as part of the handlers of the   block'()*,+&&'()*+,None-01:K-scoped-codensityA  that is associated to a scope.scoped-codensityAcquire mutable memory for the duration of a scope. The value is automatically dropped at the end of the scope./scoped-codensitywrite a value to a pointer0scoped-codensityread a value from a pointer1scoped-codensitythis is a wrapper around 4 to allow for safe usage of this function in a scope2scoped-codensity,takes a function that does something with a  and makes it safe/01.2--12./0None-01: 3scoped-codensityLike   but for  4scoped-codensityLike   but for  4334None-01:Q'()*,+!%$#"/0.43&  - &'()*+, !"#$%34-./0= !"#$%&'(()*++,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU VWXYZ[\]^[_ scoped-codensity-0.1.0.2-inplaceControl.Monad.Scoped.HandleControl.Monad.Scoped.InternalControl.Monad.Scoped.AsyncControl.Monad.Scoped.PtrControl.Monad.Scoped.Tempscoped-codensityControl.Monad.STST System.IOwithFileControl.ExceptionbracketIOHandle hPutStrLnhPutStrhGetLine hGetContentsControl.Concurrent.AsynccancelControl.ConcurrentforkOSForeignPtrwithForeignPtr withTempFilewithSystemTempFileControl.Monad.Scoped ghc-internalGHC.Internal.IO.IOModeIOModeReadMode WriteMode AppendMode ReadWriteModeScopingscoped:<ScopedResourceUnsafeMkScopedResourceunsafeUnwrapScopedResourceScopedUnsafeMkScopedunsafeRunScopedregisterHandler bracketScoped$fMonadTransScoped$fMonadFailScoped$fMonadIOScoped$fMonadPlusScoped $fMonadScoped$fAlternativeScoped$fApplicativeScoped$fFunctorScoped$f: