Safe Haskell | Safe-Inferred |
---|

- class Monad m => MonadTimeout w m | m -> w where
- data Timeout w a
- runTimeout :: Strategy w -> Int -> Timeout w () -> IO (Maybe w)
- returning :: MonadTimeout w m => m w -> m ()

# Documentation

class Monad m => MonadTimeout w m | m -> w whereSource

Save an intermediate result of the computation.

tellWith :: (Maybe w -> w) -> m ()Source

Combine an intermediate result of the computation with the current saved result (if any) and save it.

Explicitly allow interrupting the computation at this point. Experimental.

Monad (Timeout w) => MonadTimeout w (Timeout w) |

:: Strategy w | Evaluate values passed to |

-> Int | Timeout in microseconds. |

-> Timeout w () | The computation. |

-> IO (Maybe w) | The result, or |

Execute the given computation with a timeout limit and force
the result to the form defined by the given `Strategy`

.

returning :: MonadTimeout w m => m w -> m ()Source

Convert a monadic computation returning a value of the result type into
'm ()' so that it can be used with `runTimeout`

. Calling 'returning k'
is equivalent to 'k >>= tell'.