-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Safe, programmable, speculative parallelism with monads. -- -- Safe, programmable, speculative parallelism with monads. @package speculation-transformers @version 0.1 -- | Versions of the combinators from the speculation package with -- the signature rearranged to enable them to be used directly as actions -- in the Cont and ContT monads. module Control.Monad.Trans.Cont.Speculation -- | When a is unevaluated, spec g a evaluates the current -- continuation with g while testing if g == -- a, if they differ, it re-evalutes the continuation with -- a. If a was already evaluated, the continuation is -- just directly applied to a instead. spec :: Eq a => a -> a -> ContT r m a -- | As per spec, without the check for whether or not the second -- argument is already evaluated. spec' :: Eq a => a -> a -> ContT r m a -- | spec with a user supplied comparison function specBy :: (a -> a -> Bool) -> a -> a -> ContT r m a -- | spec' with a user supplied comparison function specBy' :: (a -> a -> Bool) -> a -> a -> ContT r m a -- | spec' with a user supplied comparison function specOn :: Eq c => (a -> c) -> a -> a -> ContT r m a -- | spec' with a user supplied comparison function specOn' :: Eq c => (a -> c) -> a -> a -> ContT r m a specSTM :: Eq a => STM a -> a -> ContT r STM a specSTM' :: Eq a => STM a -> a -> ContT r STM a specOnSTM :: Eq c => (a -> STM c) -> STM a -> a -> ContT r STM a specOnSTM' :: Eq c => (a -> STM c) -> STM a -> a -> ContT r STM a specBySTM :: (a -> a -> STM Bool) -> STM a -> a -> ContT r STM a specBySTM' :: (a -> a -> STM Bool) -> STM a -> a -> ContT r STM a