h,3      !"#$%&'()*+,-./0120.1.0.1None-01: the  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 dischargedRun 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 reachedwhen 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 inA 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 The   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 escape2Run 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 finishedA wrapper around  $ to allocate a resource safely in a   block It returns a  that belongs to the   block it was allocated inYou can use all the actions you can use in the underlying monad m also in the   monad by 3 ing into it.You can 4 in a Scoped blockYou can perform 5 in a scoped block, but it does not inherit its safety guaranteesthe handler to be registered,an action that allocates a resource of type a.an action that deallocates a resource of type a     None-01:   Just like   but bound to a   block!Given a 6%, safely allocates and deallocates a   in a   block"Like   but for  #Like   but for  $Like   but for  %Like   but for  !%$#" !"#$%None-01:K& Just like 7 but bound to a   block'Run an 53 action asynchronously in a Scoped block. When the   block ends, the 7 is led(Like ' but uses  internally) Wait for the & to finish immediately*Like ) but return either 8 9 or : a+Like )) but wait as part of the handlers of the   block,Like *) but wait as part of the handlers of the   block'()*,+&&'()*+,None-01:-A  that is associated to a scope but it is mutable (can be read from and written to).Acquire mutable memory for the duration of a scope. The value is automatically dropped at the end of the scope./write a value to a pointer0read a value from a pointer/0.--./0None-01:@1Like   but for  2Like   but for  2112None-01:'()*,+!%$#"/0.21&  - &'()*+, !"#$%12-./0; !"#$%&''()**+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR STUVWXYZ[X\ scoped-codensity-0.1.0.1-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.ConcurrentforkOSForeignPtr withTempFilewithSystemTempFileControl.Monad.Scoped ghc-internalGHC.Internal.IO.IOModeIOModeReadMode WriteMode AppendMode ReadWriteModeScopingscoped:<ScopedResourceUnsafeMkScopedResourceunsafeUnwrapScopedResourceScopedUnsafeMkScopedunsafeRunScopedregisterHandler bracketScoped$fMonadTransScoped$fMonadFailScoped$fMonadIOScoped$fMonadPlusScoped $fMonadScoped$fAlternativeScoped$fApplicativeScoped$fFunctorScoped$f: