h$.6      !"#$%&'()*+,-./012345None<678None 567< isimpoole Pool metricssimpoole!Total number of resources createdsimpoole#Total number of resources destroyedsimpoole:Maximum number of resources that were alive simultaneouslysimpoole"Number of resources currently idlesimpoolePool of resourcessimpoole1Lets you configure certain behaviours of the poolsimpoole simpoole5Maximum idle time after which a resource is destroyedSetting it to Nothing> means that nothing will ever be destroyed based on idle time. simpooleRead documentation on   for details. simpoole;Maximum number of resources that may live at the same time.Nothing means unlimited. simpoole4Strategy to use when returning resources to the pool simpooleReturn resources to the front. Resources that have been used recently are more likely to be reused again quicker.This strategy is good if you want to scale down the pool more quickly in case resources are not needed.simpooleReturn resources to the back. Resources that have been used recently are less likely to be used again quicker.Use this strategy if you want to keep more resources in the pool fresh, or when maintaining the pool in order to be ready for burst workloads.Note: This strategy can lead to no resources ever being destroyed when all resources are repeatedly used within the idle timeout.simpooleReturn resources to the middle. This offers a middleground between   and . By ensuring that the starting sub-sequence of resources is reused quicker but the trailing sub-sequence is not and therefore released more easily.simpooleDefault pool settingssimpooleLift a natural transformation m ~> n to Pool m ~> Pool n.simpooleCreate a new pool.simpooleUse a resource from the pool. Once the continuation returns, the resource will be returned to the pool. If the given continuation throws an error then the acquired resource will be destroyed instead.simpooleAcquire a resource.simpooleReturn a resource to the pool.simpooleDestroy a resource.simpooleFetch pool metrics.simpooleResource creationsimpooleResource destructionsimpoole Pool settings   None> %simpoole'A pooled resource is available through m&simpoole)Grab a resource and do something with it.'simpoole(simpoole)simpoole*simpoole+simpoole,simpoole-simpoole.simpoole/simpoole0simpoole1simpoole%&%&None%<>i2simpoole)Monad transformer for operations on poolsThis transformer can help you if you have problems with re-entrance (e.g. nested  calls). -withResource $ \x -> withResource $ \y -> ...In the above example x and y are the same resource.Note, this does not apply when spawning new threads in the outer & scope using 9. 5withResource $ \x -> async $ withResource $ \y -> ...In the special case above, x and y9 are not the same resource because the closure given to async9 does not inherit the associated resource from the outer & closure.3simpoole1Run the monad transformer against the given pool.4simpoole,Lift an operation on the underlying functor.5simpoole#Retrieve the internal pool metrics.See .:simpoole;simpoole<simpoole=simpoole>simpoole?simpoole@simpooleAsimpooleBsimpooleCsimpooleDsimpooleEsimpooleFsimpooleGsimpooleHsimpoole 2IJKLMN345None%&2345%&2345       !"#$%&'()*+,-./01234567899:;<=>?@ABCDEFGHIJKL5MNNOP%simpoole-0.4.0-E4yIzbXCM2k4vKv4cwRDNrSimpooleSimpoole.Monad.ClassSimpoole.MonadSimpoole.InternalSimpoole.Monad.InternalMetricsmetrics_createdResourcesmetrics_destroyedResourcesmetrics_maxLiveResourcesmetrics_idleResourcesPoolSettingssettings_idleTimeoutsettings_returnPolicysettings_maxLiveLimit ReturnPolicy ReturnToFront ReturnToBackReturnToMiddledefaultSettingsmapPoolnewPool withResourceacquireResourcereturnResourcedestroyResource poolMetrics $fShowMetrics $fReadMetrics $fEqMetrics $fOrdMetrics$fFunctorMetrics$fFoldableMetrics$fTraversableMetrics$fShowReturnPolicy$fReadReturnPolicy$fEqReturnPolicy$fOrdReturnPolicy$fEnumReturnPolicy$fBoundedReturnPolicy MonadPool$fMonadPoolresourceIdentityT$fMonadPoolresourceCatchT$fMonadPoolresourceIsConc$fMonadPoolresourceProduct$fMonadPoolresourceRWST$fMonadPoolresourceRWST0$fMonadPoolresourceReaderT$fMonadPoolresourceWriterT$fMonadPoolresourceWriterT0$fMonadPoolresourceStateT$fMonadPoolresourceStateT0PoolTrunPoolT hoistPoolT metricsPoolTFailToIOfailToIO+concurrency-1.11.0.2-FRO5zwydvEuI2fOiehXrTBControl.Monad.Conc.Class MonadConc$fMonadConcPoolT$fMonadReaderrPoolT$fMonadTransPoolT$fMonadPoolresourcePoolT$fFunctorPoolT$fApplicativePoolT $fMonadPoolT$fMonadFailPoolT$fMonadIOPoolT$fMonadThrowPoolT$fMonadCatchPoolT$fMonadMaskPoolT$fMonadStatesPoolT$fMonadErrorePoolT$fMonadWriterwPoolTunPoolTPoolEnvpoolEnv_resource poolEnv_pool