stack-1.3.0: The Haskell Tool Stack

Safe HaskellNone



The monad used for the command-line executable stack.



data StackT config m a Source

The monad used for the executable stack.


MonadBaseControl b m => MonadBaseControl b (StackT config m) Source 
MonadBase b m => MonadBase b (StackT config m) Source 
MonadTrans (StackT config) Source 
MonadTransControl (StackT config) Source 
Monad m => MonadReader (Env config) (StackT config m) Source 
Monad m => Monad (StackT config m) Source 
Functor m => Functor (StackT config m) Source 
Applicative m => Applicative (StackT config m) Source 
MonadThrow m => MonadThrow (StackT config m) Source 
MonadCatch m => MonadCatch (StackT config m) Source 
MonadMask m => MonadMask (StackT config m) Source 
MonadIO m => MonadIO (StackT config m) Source 
MonadIO m => MonadLogger (StackT config m) Source

Takes the configured log level into account.

MonadIO m => MonadLoggerIO (StackT config m) Source 
type StT (StackT config) a = StT (ReaderT (Env config)) a Source 
type StM (StackT config m) a = ComposeSt (StackT config) m a Source 

type HasEnv r = (HasLogOptions r, HasTerminal r, HasReExec r, HasSticky r) Source

Constraint synonym for all of the common environment instances

type StackM r m = (MonadReader r m, MonadIO m, MonadBaseControl IO m, MonadLoggerIO m, MonadMask m, HasEnv r) Source

Constraint synonym for constraints commonly satisifed by monads used in stack.

runStackT :: MonadIO m => config -> LogLevel -> Bool -> Bool -> ColorWhen -> Bool -> StackT config m a -> m a Source

runStackTGlobal :: MonadIO m => config -> GlobalOpts -> StackT config m a -> m a Source

Run a Stack action, using global options.

runInnerStackT :: (HasEnv r, MonadReader r m, MonadIO m) => config -> StackT config IO a -> m a Source

logSticky :: Q Exp Source

Write a "sticky" line to the terminal. Any subsequent lines will overwrite this one, and that same line will be repeated below again. In other words, the line sticks at the bottom of the output forever. Running this function again will replace the sticky line with a new sticky line. When you want to get rid of the sticky line, run logStickyDone.

logStickyDone :: Q Exp Source

This will print out the given message with a newline and disable any further stickiness of the line until a new call to logSticky happens.

It might be better at some point to have a runSticky function that encompasses the logSticky->logStickyDone pairing.