Portability | portable |
---|---|

Stability | provisional |

Maintainer | Edward Kmett <ekmett@gmail.com> |

- spec :: Eq a => a -> a -> ContT r m a
- spec' :: Eq a => a -> a -> ContT r m a
- specBy :: (a -> a -> Bool) -> a -> a -> ContT r m a
- specBy' :: (a -> a -> Bool) -> a -> a -> ContT r m a
- specOn :: Eq c => (a -> c) -> a -> a -> ContT r m a
- 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

# Basic speculation

spec' :: Eq a => a -> a -> ContT r m aSource

As per `spec`

, without the check for whether or not the second argument
is already evaluated.

specBy :: (a -> a -> Bool) -> a -> a -> ContT r m aSource

`spec`

with a user supplied comparison function

specBy' :: (a -> a -> Bool) -> a -> a -> ContT r m aSource

`spec'`

with a user supplied comparison function

specOn :: Eq c => (a -> c) -> a -> a -> ContT r m aSource

`spec'`

with a user supplied comparison function

specOn' :: Eq c => (a -> c) -> a -> a -> ContT r m aSource

`spec'`

with a user supplied comparison function