Instances2Functor, Applicative
Functor TDefined in pooled-io-0.0.2.3 · Control.Concurrent.PooledIO.FinalApplicative TDefined in pooled-io-0.0.2.3 · Control.Concurrent.PooledIO.Final
:: a typeCtrl KGHC 9.10.3 · lts/ghc-9.10.x · c74966e · 2026-09-27
Modulepooled-io-0.0.2.3Haskell98
This module implements something similar to
Control.Concurrent.PooledIO.InOrder,
but since it is restricted to an Applicative interface
we can implement it without unsafeInterleaveIO.
Functor TDefined in pooled-io-0.0.2.3 · Control.Concurrent.PooledIO.FinalApplicative TDefined in pooled-io-0.0.2.3 · Control.Concurrent.PooledIO.FinalrunLimited with a maximum of numCapabilites threads.
runLimited n runs several actions in a pool with at most n threads.
This runs an action parallelly to the starting thread. Since it is an Applicative Functor and not a Monad, there are no data dependencies between the actions and thus all actions in a T can be run parallelly. Only the IO actions are parallelised but not the combining function passed to liftA2 et.al. That is, the main work must be done in the IO actions in order to benefit from parallelisation.