-- 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