chatty-0.4.0.0: Some monad transformers and typeclasses to simplify I/O on a transformer stack.

Safe HaskellSafe-Inferred

Text.Chatty.Channel.Printer

Description

Provides a printer class that offers several channels.

Synopsis

Documentation

class (MonadPrinter m, Eq c) => ChannelPrinter c m whereSource

Typeclass for all printers that offer several channels.

Methods

cbracket :: c -> m a -> m aSource

Run the function with the given channel.

cstart :: c -> m ()Source

Switch to the given channel

cfin :: c -> m ()Source

Return to the previous channel. The argument is bogus (just for type inference).

cprint :: c -> String -> m ()Source

Print the string to the given channel.

cthis :: m cSource

Return the current channel.

Instances

ChannelPrinter Bool m0 => ChannelPrinter Bool (HandleCloserT m0) 
ChannelPrinter Bool m0 => ChannelPrinter Bool (InRedirT m0) 
ChannelPrinter Bool m0 => ChannelPrinter Bool (QuietT m0) 
ChannelPrinter Bool m0 => ChannelPrinter Bool (HereStringT m0) 
ChannelPrinter Bool m0 => ChannelPrinter Bool (SpawnOverlayT m0) 
ChannelPrinter Bool m0 => ChannelPrinter Bool (HtmlPrinterT m0) 
ChannelPrinter Bool m0 => ChannelPrinter Bool (AnsiPrinterT m0) 
ChannelPrinter Bool m0 => ChannelPrinter Bool (NullExpanderT m0) 
ChannelPrinter Bool m0 => ChannelPrinter Bool (ExpanderT m0) 
ChannelPrinter Bool m0 => ChannelPrinter Bool (HistoryT m0) 
ChannelPrinter Int m0 => ChannelPrinter Int (HandleCloserT m0) 
ChannelPrinter Int m0 => ChannelPrinter Int (InRedirT m0) 
ChannelPrinter Int m0 => ChannelPrinter Int (QuietT m0) 
ChannelPrinter Int m0 => ChannelPrinter Int (HereStringT m0) 
ChannelPrinter Int m0 => ChannelPrinter Int (SpawnOverlayT m0) 
ChannelPrinter Int m0 => ChannelPrinter Int (HtmlPrinterT m0) 
ChannelPrinter Int m0 => ChannelPrinter Int (AnsiPrinterT m0) 
ChannelPrinter Int m0 => ChannelPrinter Int (NullExpanderT m0) 
ChannelPrinter Int m0 => ChannelPrinter Int (ExpanderT m0) 
ChannelPrinter Int m0 => ChannelPrinter Int (HistoryT m0) 
ChannelPrinter Handle m0 => ChannelPrinter Handle (HandleCloserT m0) 
ChannelPrinter Handle m0 => ChannelPrinter Handle (InRedirT m0) 
ChannelPrinter Handle m0 => ChannelPrinter Handle (QuietT m0) 
ChannelPrinter Handle m0 => ChannelPrinter Handle (HereStringT m0) 
ChannelPrinter Handle m0 => ChannelPrinter Handle (SpawnOverlayT m0) 
ChannelPrinter Handle m0 => ChannelPrinter Handle (HtmlPrinterT m0) 
ChannelPrinter Handle m0 => ChannelPrinter Handle (AnsiPrinterT m0) 
ChannelPrinter Handle m0 => ChannelPrinter Handle (NullExpanderT m0) 
ChannelPrinter Handle m0 => ChannelPrinter Handle (ExpanderT m0) 
ChannelPrinter Handle m0 => ChannelPrinter Handle (HistoryT m0) 
(Eq c, MonadPrinter m) => ChannelPrinter c (FilterT c m) 
(Eq c, Monad m) => ChannelPrinter c (ArchiverT c m) 

newtype ArchiverT c m a Source

Catches all output on multiple channels.

Constructors

Archiver 

Fields

runArchiverT' :: ([(c, [String])], [c]) -> m (a, ([(c, [String])], [c]))
 

runArchiverT :: (Eq c, Monad m) => c -> ArchiverT c m a -> m (a, [(c, Replayable)])Source

newtype FilterT c m a Source

Forwards output only on a specific channel.

Constructors

Filter 

Fields

runFilterT :: (c, [c]) -> m (a, [c])
 

Instances

(Eq c, MonadPrinter m) => ChannelPrinter c (FilterT c m) 
MonadTrans (FilterT c) 
MonadRandom m0 => MonadRandom (HandleFilterT m0) 
MonadRandom m0 => MonadRandom (BoolFilterT m0) 
MonadRandom m0 => MonadRandom (IntFilterT m0) 
MonadClock m0 => MonadClock (HandleFilterT m0) 
MonadClock m0 => MonadClock (BoolFilterT m0) 
MonadClock m0 => MonadClock (IntFilterT m0) 
MonadFinalizer m0 => MonadFinalizer (HandleFilterT m0) 
MonadFinalizer m0 => MonadFinalizer (BoolFilterT m0) 
MonadFinalizer m0 => MonadFinalizer (IntFilterT m0) 
MonadScanner m0 => MonadScanner (HandleFilterT m0) 
MonadScanner m0 => MonadScanner (BoolFilterT m0) 
MonadScanner m0 => MonadScanner (IntFilterT m0) 
MonadSpawn m0 => MonadSpawn (HandleFilterT m0) 
MonadSpawn m0 => MonadSpawn (BoolFilterT m0) 
MonadSpawn m0 => MonadSpawn (IntFilterT m0) 
ExtendedPrinter m0 => ExtendedPrinter (HandleFilterT m0) 
ExtendedPrinter m0 => ExtendedPrinter (BoolFilterT m0) 
ExtendedPrinter m0 => ExtendedPrinter (IntFilterT m0) 
MonadExpand m0 => MonadExpand (HandleFilterT m0) 
MonadExpand m0 => MonadExpand (BoolFilterT m0) 
MonadExpand m0 => MonadExpand (IntFilterT m0) 
ExpanderEnv m0 => ExpanderEnv (HandleFilterT m0) 
ExpanderEnv m0 => ExpanderEnv (BoolFilterT m0) 
ExpanderEnv m0 => ExpanderEnv (IntFilterT m0) 
HistoryEnv m0 => HistoryEnv (HandleFilterT m0) 
HistoryEnv m0 => HistoryEnv (BoolFilterT m0) 
HistoryEnv m0 => HistoryEnv (IntFilterT m0) 
Monad m => Monad (FilterT c m) 
Monad m => Functor (FilterT c m) 
MonadIO m => MonadIO (FilterT c m) 
(Eq c, MonadPrinter m) => MonadPrinter (FilterT c m)