darcs-2.8.4: a distributed, interactive, smart revision control system

Safe Haskell | None

Darcs.MonadProgress

Synopsis

- class Monad m => MonadProgress m where
  - runProgressActions :: String -> [ProgressAction m ()] -> m ()
- data ProgressAction m a = ProgressAction {
  - paAction :: m a
  - paMessage :: Doc
  - paOnError :: Doc
  }
- silentlyRunProgressActions :: Monad m => String -> [ProgressAction m ()] -> m ()

# Documentation

class Monad m => MonadProgress m where

Methods

runProgressActions :: String -> [ProgressAction m ()] -> m ()

run a list of `ProgressAction`s. In some monads (typically IO-based ones), the progress and error messages will be used. In others they will be ignored and just the actions will be run.

Instances

MonadProgress IO |
MonadProgress RestrictedApply |
MonadProgress FilePathMonad |
(Functor m, Monad m) => MonadProgress (TreeMonad m) |

data ProgressAction m a

a monadic action, annotated with a progress message that could be printed out while running the action, and a message that could be printed out on error. Actually printing out these messages is optional to allow non-IO monads to just run the action.

Constructors

ProgressAction |

Fields

paAction :: m a
paMessage :: Doc
paOnError :: Doc

silentlyRunProgressActions :: Monad m => String -> [ProgressAction m ()] -> m ()

run a list of `ProgressAction`s without any feedback messages