packages feed

chatty 0.5.5.1 → 0.6

raw patch · 22 files changed

+142/−356 lines, 22 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- System.Chatty.Misc: class (Functor m, Monad m) => MonadClock m where mgetstamp = fmap (flip diffUTCTime (UTCTime (fromGregorian 1970 1 1) (secondsToDiffTime 0))) mutctime
- System.Chatty.Misc: class Monad m => MonadRandom m
- System.Chatty.Misc: instance MonadClock IO
- System.Chatty.Misc: instance MonadRandom IO
- System.Chatty.Spawn: class Monad m => MonadSpawn m
- System.Chatty.Spawn: instance MonadSpawn IO
- System.Chatty.Spawn.Overlay: instance MonadSpawn m => MonadSpawn (SpawnOverlayT m)
- Text.Chatty.Channel.Broadcast: class ChannelPrinter c m => Broadcaster c m
- Text.Chatty.Channel.Broadcast: class Broadcaster c m => BroadcasterBracket c m where bbracket f m = bstart f >> m >>= \ a -> bfin f >> return a
- Text.Chatty.Channel.Printer: class (MonadPrinter m, Eq c) => ChannelPrinter c m where cbracket c m = cstart c >> m >>= \ a -> cfin c >> return a cprint c s = cbracket c $ mprint s
- Text.Chatty.Channel.Printer: instance (Eq c, Monad m) => ChannelPrinter c (ArchiverT c m)
- Text.Chatty.Channel.Printer: instance (Eq c, Monad m) => MonadPrinter (ArchiverT c m)
- Text.Chatty.Channel.Printer: instance (Eq c, MonadPrinter m) => ChannelPrinter c (FilterT c m)
- Text.Chatty.Channel.Printer: instance (Eq c, MonadPrinter m) => ChannelPrinter c (JoinerT m)
- Text.Chatty.Channel.Printer: instance (Eq c, MonadPrinter m) => MonadPrinter (FilterT c m)
- Text.Chatty.Channel.Printer: instance MonadPrinter m => MonadPrinter (JoinerT m)
- Text.Chatty.Expansion: class Monad e => MonadExpand e
- Text.Chatty.Expansion: instance Monad m => MonadExpand (NullExpanderT m)
- Text.Chatty.Expansion.History: class Monad he => HistoryEnv he
- Text.Chatty.Expansion.History: instance Monad m => HistoryEnv (HistoryT m)
- Text.Chatty.Expansion.History: instance MonadExpand m => MonadExpand (HistoryT m)
- Text.Chatty.Expansion.Vars: class Monad ee => ExpanderEnv ee
- Text.Chatty.Expansion.Vars: instance ExpanderEnv IO
- Text.Chatty.Expansion.Vars: instance Monad m => ExpanderEnv (ExpanderT m)
- Text.Chatty.Expansion.Vars: instance MonadExpand IO
- Text.Chatty.Expansion.Vars: instance MonadExpand m => MonadExpand (ExpanderT m)
- Text.Chatty.Extended.ANSI: instance (Functor m, MonadExpand m) => MonadExpand (AnsiPrinterT m)
- Text.Chatty.Extended.ANSI: instance MonadPrinter m => ExtendedPrinter (AnsiPrinterT m)
- Text.Chatty.Extended.ANSI: instance MonadPrinter m => MonadPrinter (AnsiPrinterT m)
- Text.Chatty.Extended.HTML: instance (Functor m, MonadExpand m) => MonadExpand (HtmlPrinterT m)
- Text.Chatty.Extended.HTML: instance MonadPrinter m => ExtendedPrinter (HtmlPrinterT m)
- Text.Chatty.Extended.HTML: instance MonadPrinter m => MonadPrinter (HtmlPrinterT m)
- Text.Chatty.Extended.Printer: class MonadPrinter m => ExtendedPrinter m where ebracket c m = do { estart c; a <- m; efin; return a } eprint c = ebracket c . mprint eprintLn c s = eprint c s >> mprintLn "" enomask c = ebracket c . mnomask enomaskLn c s = enomask c s >> mprintLn ""
- Text.Chatty.Finalizer: class Monad m => MonadFinalizer m where mqfhs = foldr ((>>) . mqfh) (return ())
- Text.Chatty.Finalizer: instance MonadIO m => MonadFinalizer (HandleCloserT m)
- Text.Chatty.Interactor: instance BufferedScanner m0 => BufferedScanner (AnsiPrinterT m0)
- Text.Chatty.Interactor: instance BufferedScanner m0 => BufferedScanner (DeafT m0)
- Text.Chatty.Interactor: instance BufferedScanner m0 => BufferedScanner (ExpanderT m0)
- Text.Chatty.Interactor: instance BufferedScanner m0 => BufferedScanner (HandleCloserT m0)
- Text.Chatty.Interactor: instance BufferedScanner m0 => BufferedScanner (HistoryT m0)
- Text.Chatty.Interactor: instance BufferedScanner m0 => BufferedScanner (HtmlPrinterT m0)
- Text.Chatty.Interactor: instance BufferedScanner m0 => BufferedScanner (NullExpanderT m0)
- Text.Chatty.Interactor: instance BufferedScanner m0 => BufferedScanner (OutRedirT m0)
- Text.Chatty.Interactor: instance BufferedScanner m0 => BufferedScanner (RecorderT m0)
- Text.Chatty.Interactor: instance BufferedScanner m0 => BufferedScanner (SpawnOverlayT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Bool m0 => ChannelPrinter Bool (AnsiPrinterT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Bool m0 => ChannelPrinter Bool (ExpanderT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Bool m0 => ChannelPrinter Bool (HandleCloserT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Bool m0 => ChannelPrinter Bool (HereStringT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Bool m0 => ChannelPrinter Bool (HistoryT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Bool m0 => ChannelPrinter Bool (HtmlPrinterT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Bool m0 => ChannelPrinter Bool (InRedirT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Bool m0 => ChannelPrinter Bool (NullExpanderT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Bool m0 => ChannelPrinter Bool (QuietT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Bool m0 => ChannelPrinter Bool (ScannerBufferT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Bool m0 => ChannelPrinter Bool (SpawnOverlayT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Handle m0 => ChannelPrinter Handle (AnsiPrinterT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Handle m0 => ChannelPrinter Handle (ExpanderT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Handle m0 => ChannelPrinter Handle (HandleCloserT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Handle m0 => ChannelPrinter Handle (HereStringT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Handle m0 => ChannelPrinter Handle (HistoryT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Handle m0 => ChannelPrinter Handle (HtmlPrinterT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Handle m0 => ChannelPrinter Handle (InRedirT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Handle m0 => ChannelPrinter Handle (NullExpanderT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Handle m0 => ChannelPrinter Handle (QuietT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Handle m0 => ChannelPrinter Handle (ScannerBufferT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Handle m0 => ChannelPrinter Handle (SpawnOverlayT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Int m0 => ChannelPrinter Int (AnsiPrinterT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Int m0 => ChannelPrinter Int (ExpanderT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Int m0 => ChannelPrinter Int (HandleCloserT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Int m0 => ChannelPrinter Int (HereStringT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Int m0 => ChannelPrinter Int (HistoryT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Int m0 => ChannelPrinter Int (HtmlPrinterT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Int m0 => ChannelPrinter Int (InRedirT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Int m0 => ChannelPrinter Int (NullExpanderT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Int m0 => ChannelPrinter Int (QuietT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Int m0 => ChannelPrinter Int (ScannerBufferT m0)
- Text.Chatty.Interactor: instance ChannelPrinter Int m0 => ChannelPrinter Int (SpawnOverlayT m0)
- Text.Chatty.Interactor: instance ExpanderEnv m0 => ExpanderEnv (AnsiPrinterT m0)
- Text.Chatty.Interactor: instance ExpanderEnv m0 => ExpanderEnv (BoolArchiverT m0)
- Text.Chatty.Interactor: instance ExpanderEnv m0 => ExpanderEnv (BoolFilterT m0)
- Text.Chatty.Interactor: instance ExpanderEnv m0 => ExpanderEnv (DeafT m0)
- Text.Chatty.Interactor: instance ExpanderEnv m0 => ExpanderEnv (HandleArchiverT m0)
- Text.Chatty.Interactor: instance ExpanderEnv m0 => ExpanderEnv (HandleCloserT m0)
- Text.Chatty.Interactor: instance ExpanderEnv m0 => ExpanderEnv (HandleFilterT m0)
- Text.Chatty.Interactor: instance ExpanderEnv m0 => ExpanderEnv (HereStringT m0)
- Text.Chatty.Interactor: instance ExpanderEnv m0 => ExpanderEnv (HistoryT m0)
- Text.Chatty.Interactor: instance ExpanderEnv m0 => ExpanderEnv (HtmlPrinterT m0)
- Text.Chatty.Interactor: instance ExpanderEnv m0 => ExpanderEnv (InRedirT m0)
- Text.Chatty.Interactor: instance ExpanderEnv m0 => ExpanderEnv (IntArchiverT m0)
- Text.Chatty.Interactor: instance ExpanderEnv m0 => ExpanderEnv (IntFilterT m0)
- Text.Chatty.Interactor: instance ExpanderEnv m0 => ExpanderEnv (JoinerT m0)
- Text.Chatty.Interactor: instance ExpanderEnv m0 => ExpanderEnv (OutRedirT m0)
- Text.Chatty.Interactor: instance ExpanderEnv m0 => ExpanderEnv (QuietT m0)
- Text.Chatty.Interactor: instance ExpanderEnv m0 => ExpanderEnv (RecorderT m0)
- Text.Chatty.Interactor: instance ExpanderEnv m0 => ExpanderEnv (ScannerBufferT m0)
- Text.Chatty.Interactor: instance ExpanderEnv m0 => ExpanderEnv (SpawnOverlayT m0)
- Text.Chatty.Interactor: instance ExtendedPrinter m0 => ExtendedPrinter (HereStringT m0)
- Text.Chatty.Interactor: instance ExtendedPrinter m0 => ExtendedPrinter (HistoryT m0)
- Text.Chatty.Interactor: instance ExtendedPrinter m0 => ExtendedPrinter (InRedirT m0)
- Text.Chatty.Interactor: instance ExtendedPrinter m0 => ExtendedPrinter (NullExpanderT m0)
- Text.Chatty.Interactor: instance ExtendedPrinter m0 => ExtendedPrinter (QuietT m0)
- Text.Chatty.Interactor: instance ExtendedPrinter m0 => ExtendedPrinter (ScannerBufferT m0)
- Text.Chatty.Interactor: instance ExtendedPrinter m0 => ExtendedPrinter (SpawnOverlayT m0)
- Text.Chatty.Interactor: instance HistoryEnv m0 => HistoryEnv (AnsiPrinterT m0)
- Text.Chatty.Interactor: instance HistoryEnv m0 => HistoryEnv (BoolArchiverT m0)
- Text.Chatty.Interactor: instance HistoryEnv m0 => HistoryEnv (BoolFilterT m0)
- Text.Chatty.Interactor: instance HistoryEnv m0 => HistoryEnv (DeafT m0)
- Text.Chatty.Interactor: instance HistoryEnv m0 => HistoryEnv (ExpanderT m0)
- Text.Chatty.Interactor: instance HistoryEnv m0 => HistoryEnv (HandleArchiverT m0)
- Text.Chatty.Interactor: instance HistoryEnv m0 => HistoryEnv (HandleCloserT m0)
- Text.Chatty.Interactor: instance HistoryEnv m0 => HistoryEnv (HandleFilterT m0)
- Text.Chatty.Interactor: instance HistoryEnv m0 => HistoryEnv (HereStringT m0)
- Text.Chatty.Interactor: instance HistoryEnv m0 => HistoryEnv (HtmlPrinterT m0)
- Text.Chatty.Interactor: instance HistoryEnv m0 => HistoryEnv (InRedirT m0)
- Text.Chatty.Interactor: instance HistoryEnv m0 => HistoryEnv (IntArchiverT m0)
- Text.Chatty.Interactor: instance HistoryEnv m0 => HistoryEnv (IntFilterT m0)
- Text.Chatty.Interactor: instance HistoryEnv m0 => HistoryEnv (JoinerT m0)
- Text.Chatty.Interactor: instance HistoryEnv m0 => HistoryEnv (OutRedirT m0)
- Text.Chatty.Interactor: instance HistoryEnv m0 => HistoryEnv (QuietT m0)
- Text.Chatty.Interactor: instance HistoryEnv m0 => HistoryEnv (RecorderT m0)
- Text.Chatty.Interactor: instance HistoryEnv m0 => HistoryEnv (ScannerBufferT m0)
- Text.Chatty.Interactor: instance HistoryEnv m0 => HistoryEnv (SpawnOverlayT m0)
- Text.Chatty.Interactor: instance MonadClock m0 => MonadClock (AnsiPrinterT m0)
- Text.Chatty.Interactor: instance MonadClock m0 => MonadClock (BoolArchiverT m0)
- Text.Chatty.Interactor: instance MonadClock m0 => MonadClock (BoolFilterT m0)
- Text.Chatty.Interactor: instance MonadClock m0 => MonadClock (DeafT m0)
- Text.Chatty.Interactor: instance MonadClock m0 => MonadClock (ExpanderT m0)
- Text.Chatty.Interactor: instance MonadClock m0 => MonadClock (HandleArchiverT m0)
- Text.Chatty.Interactor: instance MonadClock m0 => MonadClock (HandleCloserT m0)
- Text.Chatty.Interactor: instance MonadClock m0 => MonadClock (HandleFilterT m0)
- Text.Chatty.Interactor: instance MonadClock m0 => MonadClock (HereStringT m0)
- Text.Chatty.Interactor: instance MonadClock m0 => MonadClock (HistoryT m0)
- Text.Chatty.Interactor: instance MonadClock m0 => MonadClock (HtmlPrinterT m0)
- Text.Chatty.Interactor: instance MonadClock m0 => MonadClock (InRedirT m0)
- Text.Chatty.Interactor: instance MonadClock m0 => MonadClock (IntArchiverT m0)
- Text.Chatty.Interactor: instance MonadClock m0 => MonadClock (IntFilterT m0)
- Text.Chatty.Interactor: instance MonadClock m0 => MonadClock (JoinerT m0)
- Text.Chatty.Interactor: instance MonadClock m0 => MonadClock (NullExpanderT m0)
- Text.Chatty.Interactor: instance MonadClock m0 => MonadClock (OutRedirT m0)
- Text.Chatty.Interactor: instance MonadClock m0 => MonadClock (QuietT m0)
- Text.Chatty.Interactor: instance MonadClock m0 => MonadClock (RecorderT m0)
- Text.Chatty.Interactor: instance MonadClock m0 => MonadClock (ScannerBufferT m0)
- Text.Chatty.Interactor: instance MonadClock m0 => MonadClock (SpawnOverlayT m0)
- Text.Chatty.Interactor: instance MonadExpand m0 => MonadExpand (BoolArchiverT m0)
- Text.Chatty.Interactor: instance MonadExpand m0 => MonadExpand (BoolFilterT m0)
- Text.Chatty.Interactor: instance MonadExpand m0 => MonadExpand (DeafT m0)
- Text.Chatty.Interactor: instance MonadExpand m0 => MonadExpand (HandleArchiverT m0)
- Text.Chatty.Interactor: instance MonadExpand m0 => MonadExpand (HandleCloserT m0)
- Text.Chatty.Interactor: instance MonadExpand m0 => MonadExpand (HandleFilterT m0)
- Text.Chatty.Interactor: instance MonadExpand m0 => MonadExpand (HereStringT m0)
- Text.Chatty.Interactor: instance MonadExpand m0 => MonadExpand (InRedirT m0)
- Text.Chatty.Interactor: instance MonadExpand m0 => MonadExpand (IntArchiverT m0)
- Text.Chatty.Interactor: instance MonadExpand m0 => MonadExpand (IntFilterT m0)
- Text.Chatty.Interactor: instance MonadExpand m0 => MonadExpand (JoinerT m0)
- Text.Chatty.Interactor: instance MonadExpand m0 => MonadExpand (OutRedirT m0)
- Text.Chatty.Interactor: instance MonadExpand m0 => MonadExpand (QuietT m0)
- Text.Chatty.Interactor: instance MonadExpand m0 => MonadExpand (RecorderT m0)
- Text.Chatty.Interactor: instance MonadExpand m0 => MonadExpand (ScannerBufferT m0)
- Text.Chatty.Interactor: instance MonadExpand m0 => MonadExpand (SpawnOverlayT m0)
- Text.Chatty.Interactor: instance MonadFinalizer m0 => MonadFinalizer (AnsiPrinterT m0)
- Text.Chatty.Interactor: instance MonadFinalizer m0 => MonadFinalizer (BoolArchiverT m0)
- Text.Chatty.Interactor: instance MonadFinalizer m0 => MonadFinalizer (BoolFilterT m0)
- Text.Chatty.Interactor: instance MonadFinalizer m0 => MonadFinalizer (DeafT m0)
- Text.Chatty.Interactor: instance MonadFinalizer m0 => MonadFinalizer (ExpanderT m0)
- Text.Chatty.Interactor: instance MonadFinalizer m0 => MonadFinalizer (HandleArchiverT m0)
- Text.Chatty.Interactor: instance MonadFinalizer m0 => MonadFinalizer (HandleFilterT m0)
- Text.Chatty.Interactor: instance MonadFinalizer m0 => MonadFinalizer (HistoryT m0)
- Text.Chatty.Interactor: instance MonadFinalizer m0 => MonadFinalizer (HtmlPrinterT m0)
- Text.Chatty.Interactor: instance MonadFinalizer m0 => MonadFinalizer (IntArchiverT m0)
- Text.Chatty.Interactor: instance MonadFinalizer m0 => MonadFinalizer (IntFilterT m0)
- Text.Chatty.Interactor: instance MonadFinalizer m0 => MonadFinalizer (JoinerT m0)
- Text.Chatty.Interactor: instance MonadFinalizer m0 => MonadFinalizer (NullExpanderT m0)
- Text.Chatty.Interactor: instance MonadFinalizer m0 => MonadFinalizer (OutRedirT m0)
- Text.Chatty.Interactor: instance MonadFinalizer m0 => MonadFinalizer (RecorderT m0)
- Text.Chatty.Interactor: instance MonadFinalizer m0 => MonadFinalizer (ScannerBufferT m0)
- Text.Chatty.Interactor: instance MonadFinalizer m0 => MonadFinalizer (SpawnOverlayT m0)
- Text.Chatty.Interactor: instance MonadPrinter m0 => MonadPrinter (ExpanderT m0)
- Text.Chatty.Interactor: instance MonadPrinter m0 => MonadPrinter (HandleCloserT m0)
- Text.Chatty.Interactor: instance MonadPrinter m0 => MonadPrinter (HereStringT m0)
- Text.Chatty.Interactor: instance MonadPrinter m0 => MonadPrinter (HistoryT m0)
- Text.Chatty.Interactor: instance MonadPrinter m0 => MonadPrinter (InRedirT m0)
- Text.Chatty.Interactor: instance MonadPrinter m0 => MonadPrinter (NullExpanderT m0)
- Text.Chatty.Interactor: instance MonadPrinter m0 => MonadPrinter (QuietT m0)
- Text.Chatty.Interactor: instance MonadPrinter m0 => MonadPrinter (ScannerBufferT m0)
- Text.Chatty.Interactor: instance MonadPrinter m0 => MonadPrinter (SpawnOverlayT m0)
- Text.Chatty.Interactor: instance MonadRandom m0 => MonadRandom (AnsiPrinterT m0)
- Text.Chatty.Interactor: instance MonadRandom m0 => MonadRandom (BoolArchiverT m0)
- Text.Chatty.Interactor: instance MonadRandom m0 => MonadRandom (BoolFilterT m0)
- Text.Chatty.Interactor: instance MonadRandom m0 => MonadRandom (DeafT m0)
- Text.Chatty.Interactor: instance MonadRandom m0 => MonadRandom (ExpanderT m0)
- Text.Chatty.Interactor: instance MonadRandom m0 => MonadRandom (HandleArchiverT m0)
- Text.Chatty.Interactor: instance MonadRandom m0 => MonadRandom (HandleCloserT m0)
- Text.Chatty.Interactor: instance MonadRandom m0 => MonadRandom (HandleFilterT m0)
- Text.Chatty.Interactor: instance MonadRandom m0 => MonadRandom (HereStringT m0)
- Text.Chatty.Interactor: instance MonadRandom m0 => MonadRandom (HistoryT m0)
- Text.Chatty.Interactor: instance MonadRandom m0 => MonadRandom (HtmlPrinterT m0)
- Text.Chatty.Interactor: instance MonadRandom m0 => MonadRandom (InRedirT m0)
- Text.Chatty.Interactor: instance MonadRandom m0 => MonadRandom (IntArchiverT m0)
- Text.Chatty.Interactor: instance MonadRandom m0 => MonadRandom (IntFilterT m0)
- Text.Chatty.Interactor: instance MonadRandom m0 => MonadRandom (JoinerT m0)
- Text.Chatty.Interactor: instance MonadRandom m0 => MonadRandom (NullExpanderT m0)
- Text.Chatty.Interactor: instance MonadRandom m0 => MonadRandom (OutRedirT m0)
- Text.Chatty.Interactor: instance MonadRandom m0 => MonadRandom (QuietT m0)
- Text.Chatty.Interactor: instance MonadRandom m0 => MonadRandom (RecorderT m0)
- Text.Chatty.Interactor: instance MonadRandom m0 => MonadRandom (ScannerBufferT m0)
- Text.Chatty.Interactor: instance MonadRandom m0 => MonadRandom (SpawnOverlayT m0)
- Text.Chatty.Interactor: instance MonadScanner m0 => MonadScanner (AnsiPrinterT m0)
- Text.Chatty.Interactor: instance MonadScanner m0 => MonadScanner (BoolArchiverT m0)
- Text.Chatty.Interactor: instance MonadScanner m0 => MonadScanner (BoolFilterT m0)
- Text.Chatty.Interactor: instance MonadScanner m0 => MonadScanner (DeafT m0)
- Text.Chatty.Interactor: instance MonadScanner m0 => MonadScanner (ExpanderT m0)
- Text.Chatty.Interactor: instance MonadScanner m0 => MonadScanner (HandleArchiverT m0)
- Text.Chatty.Interactor: instance MonadScanner m0 => MonadScanner (HandleCloserT m0)
- Text.Chatty.Interactor: instance MonadScanner m0 => MonadScanner (HandleFilterT m0)
- Text.Chatty.Interactor: instance MonadScanner m0 => MonadScanner (HistoryT m0)
- Text.Chatty.Interactor: instance MonadScanner m0 => MonadScanner (HtmlPrinterT m0)
- Text.Chatty.Interactor: instance MonadScanner m0 => MonadScanner (IntArchiverT m0)
- Text.Chatty.Interactor: instance MonadScanner m0 => MonadScanner (IntFilterT m0)
- Text.Chatty.Interactor: instance MonadScanner m0 => MonadScanner (JoinerT m0)
- Text.Chatty.Interactor: instance MonadScanner m0 => MonadScanner (NullExpanderT m0)
- Text.Chatty.Interactor: instance MonadScanner m0 => MonadScanner (OutRedirT m0)
- Text.Chatty.Interactor: instance MonadScanner m0 => MonadScanner (RecorderT m0)
- Text.Chatty.Interactor: instance MonadScanner m0 => MonadScanner (SpawnOverlayT m0)
- Text.Chatty.Interactor: instance MonadSpawn m0 => MonadSpawn (AnsiPrinterT m0)
- Text.Chatty.Interactor: instance MonadSpawn m0 => MonadSpawn (BoolArchiverT m0)
- Text.Chatty.Interactor: instance MonadSpawn m0 => MonadSpawn (BoolFilterT m0)
- Text.Chatty.Interactor: instance MonadSpawn m0 => MonadSpawn (DeafT m0)
- Text.Chatty.Interactor: instance MonadSpawn m0 => MonadSpawn (ExpanderT m0)
- Text.Chatty.Interactor: instance MonadSpawn m0 => MonadSpawn (HandleArchiverT m0)
- Text.Chatty.Interactor: instance MonadSpawn m0 => MonadSpawn (HandleCloserT m0)
- Text.Chatty.Interactor: instance MonadSpawn m0 => MonadSpawn (HandleFilterT m0)
- Text.Chatty.Interactor: instance MonadSpawn m0 => MonadSpawn (HereStringT m0)
- Text.Chatty.Interactor: instance MonadSpawn m0 => MonadSpawn (HistoryT m0)
- Text.Chatty.Interactor: instance MonadSpawn m0 => MonadSpawn (HtmlPrinterT m0)
- Text.Chatty.Interactor: instance MonadSpawn m0 => MonadSpawn (InRedirT m0)
- Text.Chatty.Interactor: instance MonadSpawn m0 => MonadSpawn (IntArchiverT m0)
- Text.Chatty.Interactor: instance MonadSpawn m0 => MonadSpawn (IntFilterT m0)
- Text.Chatty.Interactor: instance MonadSpawn m0 => MonadSpawn (JoinerT m0)
- Text.Chatty.Interactor: instance MonadSpawn m0 => MonadSpawn (NullExpanderT m0)
- Text.Chatty.Interactor: instance MonadSpawn m0 => MonadSpawn (OutRedirT m0)
- Text.Chatty.Interactor: instance MonadSpawn m0 => MonadSpawn (QuietT m0)
- Text.Chatty.Interactor: instance MonadSpawn m0 => MonadSpawn (RecorderT m0)
- Text.Chatty.Interactor: instance MonadSpawn m0 => MonadSpawn (ScannerBufferT m0)
- Text.Chatty.Parser: (??) :: (MonadParser m, Eq a) => m a -> m a -> m a
- Text.Chatty.Parser: (???) :: MonadParser m => m a -> m a -> m a
- Text.Chatty.Parser: alpha :: MonadParser m => m Char
- Text.Chatty.Parser: anum :: MonadParser m => m Char
- Text.Chatty.Parser: class MonadScanner m => MonadParser m
- Text.Chatty.Parser: digit :: MonadParser m => m Int
- Text.Chatty.Parser: many :: MonadParser m => m a -> m [a]
- Text.Chatty.Parser: match :: MonadParser m => Char -> m Char
- Text.Chatty.Parser: matchs :: MonadParser m => String -> m String
- Text.Chatty.Parser: number :: MonadParser m => m Int
- Text.Chatty.Parser: pabort :: MonadParser m => m a
- Text.Chatty.Parser: possibly :: MonadParser m => m a -> m (Maybe a)
- Text.Chatty.Parser: ptry :: (MonadParser m, MonadPlus n) => m a -> m (n a)
- Text.Chatty.Parser: request :: MonadScanner m => m Char
- Text.Chatty.Parser: some :: MonadParser m => m a -> m [a]
- Text.Chatty.Parser: white :: MonadParser m => m Char
- Text.Chatty.Parser.Nondeterministic: Failed :: ForkerT m a
- Text.Chatty.Parser.Nondeterministic: Result :: (m a) -> (Char -> ForkerT m a) -> ForkerT m a
- Text.Chatty.Parser.Nondeterministic: data ForkerT m a
- Text.Chatty.Parser.Nondeterministic: embedForkerT :: (MonadPlus n, Foldable n, MonadScanner m) => ForkerT n a -> m (n a)
- Text.Chatty.Parser.Nondeterministic: feedForkerT :: (MonadPlus m, Foldable m) => String -> ForkerT m a -> ForkerT m a
- Text.Chatty.Parser.Nondeterministic: feedForkerT1 :: (MonadPlus m, Foldable m) => Char -> ForkerT m a -> ForkerT m a
- Text.Chatty.Parser.Nondeterministic: instance (MonadPlus m, Foldable m) => Monad (ForkerT m)
- Text.Chatty.Parser.Nondeterministic: instance (MonadPlus m, Foldable m) => MonadParser (ForkerT m)
- Text.Chatty.Parser.Nondeterministic: instance (MonadPlus m, Foldable m) => MonadScanner (ForkerT m)
- Text.Chatty.Printer: class Monad m => MonadPrinter m where mnoecho = mprint mflush = return () mnomask = mprint
- Text.Chatty.Printer: instance Monad m => MonadPrinter (DeafT m)
- Text.Chatty.Printer: instance Monad m => MonadPrinter (RecorderT m)
- Text.Chatty.Printer: instance Monad m => MonadPrinter (StateT String m)
- Text.Chatty.Printer: instance MonadIO m => MonadPrinter (OutRedirT m)
- Text.Chatty.Printer: instance MonadPrinter IO
- Text.Chatty.Scanner: class Monad m => MonadScanner m where mscanh = return Nothing
- Text.Chatty.Scanner: instance Monad m => MonadScanner (HereStringT m)
- Text.Chatty.Scanner: instance Monad m => MonadScanner (QuietT m)
- Text.Chatty.Scanner: instance Monad m => MonadScanner (StateT String m)
- Text.Chatty.Scanner: instance MonadFinalizer m => MonadFinalizer (HereStringT m)
- Text.Chatty.Scanner: instance MonadFinalizer m => MonadFinalizer (InRedirT m)
- Text.Chatty.Scanner: instance MonadIO m => MonadScanner (InRedirT m)
- Text.Chatty.Scanner: instance MonadScanner IO
- Text.Chatty.Scanner.Buffered: class MonadScanner m => BufferedScanner m
- Text.Chatty.Scanner.Buffered: instance Monad m => BufferedScanner (HereStringT m)
- Text.Chatty.Scanner.Buffered: instance Monad m => BufferedScanner (StateT String m)
- Text.Chatty.Scanner.Buffered: instance MonadScanner m => BufferedScanner (ScannerBufferT m)
- Text.Chatty.Scanner.Buffered: instance MonadScanner m => MonadScanner (ScannerBufferT m)
- Text.Chatty.Typograph: simpleTypesetter :: (Functor m, MonadScanner m, MonadPrinter m) => Int -> m ()
+ System.Chatty.Misc: class (Functor m, Monad m) => ChClock m where mgetstamp = fmap (flip diffUTCTime (UTCTime (fromGregorian 1970 1 1) (secondsToDiffTime 0))) mutctime
+ System.Chatty.Misc: class Monad m => ChRandom m
+ System.Chatty.Misc: instance ChClock IO
+ System.Chatty.Misc: instance ChRandom IO
+ System.Chatty.Spawn: class Monad m => ChSpawn m
+ System.Chatty.Spawn: instance ChSpawn IO
+ System.Chatty.Spawn.Overlay: instance ChSpawn m => ChSpawn (SpawnOverlayT m)
+ Text.Chatty.Channel.Broadcast: class ChChannelPrinter c m => ChBroadcaster c m
+ Text.Chatty.Channel.Broadcast: class ChBroadcaster c m => ChBroadcasterBracket c m where bbracket f m = bstart f >> m >>= \ a -> bfin f >> return a
+ Text.Chatty.Channel.Printer: class (ChPrinter m, Eq c) => ChChannelPrinter c m where cbracket c m = cstart c >> m >>= \ a -> cfin c >> return a cprint c s = cbracket c $ mprint s
+ Text.Chatty.Channel.Printer: instance (Eq c, ChPrinter m) => ChChannelPrinter c (FilterT c m)
+ Text.Chatty.Channel.Printer: instance (Eq c, ChPrinter m) => ChChannelPrinter c (JoinerT m)
+ Text.Chatty.Channel.Printer: instance (Eq c, ChPrinter m) => ChPrinter (FilterT c m)
+ Text.Chatty.Channel.Printer: instance (Eq c, Monad m) => ChChannelPrinter c (ArchiverT c m)
+ Text.Chatty.Channel.Printer: instance (Eq c, Monad m) => ChPrinter (ArchiverT c m)
+ Text.Chatty.Channel.Printer: instance ChPrinter m => ChPrinter (JoinerT m)
+ Text.Chatty.Expansion: class Monad e => ChExpand e
+ Text.Chatty.Expansion: instance Monad m => ChExpand (NullExpanderT m)
+ Text.Chatty.Expansion.History: class Monad he => ChHistoryEnv he
+ Text.Chatty.Expansion.History: instance ChExpand m => ChExpand (HistoryT m)
+ Text.Chatty.Expansion.History: instance Monad m => ChHistoryEnv (HistoryT m)
+ Text.Chatty.Expansion.Vars: class Monad ee => ChExpanderEnv ee
+ Text.Chatty.Expansion.Vars: instance ChExpand IO
+ Text.Chatty.Expansion.Vars: instance ChExpand m => ChExpand (ExpanderT m)
+ Text.Chatty.Expansion.Vars: instance ChExpanderEnv IO
+ Text.Chatty.Expansion.Vars: instance Monad m => ChExpanderEnv (ExpanderT m)
+ Text.Chatty.Extended.ANSI: instance (Functor m, ChExpand m) => ChExpand (AnsiPrinterT m)
+ Text.Chatty.Extended.ANSI: instance ChPrinter m => ChExtendedPrinter (AnsiPrinterT m)
+ Text.Chatty.Extended.ANSI: instance ChPrinter m => ChPrinter (AnsiPrinterT m)
+ Text.Chatty.Extended.HTML: instance (Functor m, ChExpand m) => ChExpand (HtmlPrinterT m)
+ Text.Chatty.Extended.HTML: instance ChPrinter m => ChExtendedPrinter (HtmlPrinterT m)
+ Text.Chatty.Extended.HTML: instance ChPrinter m => ChPrinter (HtmlPrinterT m)
+ Text.Chatty.Extended.Printer: class ChPrinter m => ChExtendedPrinter m where ebracket c m = do { estart c; a <- m; efin; return a } eprint c = ebracket c . mprint eprintLn c s = eprint c s >> mprintLn "" enomask c = ebracket c . mnomask enomaskLn c s = enomask c s >> mprintLn ""
+ Text.Chatty.Finalizer: class Monad m => ChFinalizer m where mqfhs = foldr ((>>) . mqfh) (return ())
+ Text.Chatty.Finalizer: instance MonadIO m => ChFinalizer (HandleCloserT m)
+ Text.Chatty.Interactor: instance ChBufferedScanner m0 => ChBufferedScanner (AnsiPrinterT m0)
+ Text.Chatty.Interactor: instance ChBufferedScanner m0 => ChBufferedScanner (DeafT m0)
+ Text.Chatty.Interactor: instance ChBufferedScanner m0 => ChBufferedScanner (ExpanderT m0)
+ Text.Chatty.Interactor: instance ChBufferedScanner m0 => ChBufferedScanner (HandleCloserT m0)
+ Text.Chatty.Interactor: instance ChBufferedScanner m0 => ChBufferedScanner (HistoryT m0)
+ Text.Chatty.Interactor: instance ChBufferedScanner m0 => ChBufferedScanner (HtmlPrinterT m0)
+ Text.Chatty.Interactor: instance ChBufferedScanner m0 => ChBufferedScanner (NullExpanderT m0)
+ Text.Chatty.Interactor: instance ChBufferedScanner m0 => ChBufferedScanner (OutRedirT m0)
+ Text.Chatty.Interactor: instance ChBufferedScanner m0 => ChBufferedScanner (RecorderT m0)
+ Text.Chatty.Interactor: instance ChBufferedScanner m0 => ChBufferedScanner (SpawnOverlayT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Bool m0 => ChChannelPrinter Bool (AnsiPrinterT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Bool m0 => ChChannelPrinter Bool (ExpanderT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Bool m0 => ChChannelPrinter Bool (HandleCloserT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Bool m0 => ChChannelPrinter Bool (HereStringT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Bool m0 => ChChannelPrinter Bool (HistoryT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Bool m0 => ChChannelPrinter Bool (HtmlPrinterT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Bool m0 => ChChannelPrinter Bool (InRedirT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Bool m0 => ChChannelPrinter Bool (NullExpanderT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Bool m0 => ChChannelPrinter Bool (QuietT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Bool m0 => ChChannelPrinter Bool (ScannerBufferT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Bool m0 => ChChannelPrinter Bool (SpawnOverlayT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Handle m0 => ChChannelPrinter Handle (AnsiPrinterT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Handle m0 => ChChannelPrinter Handle (ExpanderT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Handle m0 => ChChannelPrinter Handle (HandleCloserT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Handle m0 => ChChannelPrinter Handle (HereStringT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Handle m0 => ChChannelPrinter Handle (HistoryT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Handle m0 => ChChannelPrinter Handle (HtmlPrinterT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Handle m0 => ChChannelPrinter Handle (InRedirT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Handle m0 => ChChannelPrinter Handle (NullExpanderT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Handle m0 => ChChannelPrinter Handle (QuietT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Handle m0 => ChChannelPrinter Handle (ScannerBufferT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Handle m0 => ChChannelPrinter Handle (SpawnOverlayT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Int m0 => ChChannelPrinter Int (AnsiPrinterT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Int m0 => ChChannelPrinter Int (ExpanderT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Int m0 => ChChannelPrinter Int (HandleCloserT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Int m0 => ChChannelPrinter Int (HereStringT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Int m0 => ChChannelPrinter Int (HistoryT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Int m0 => ChChannelPrinter Int (HtmlPrinterT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Int m0 => ChChannelPrinter Int (InRedirT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Int m0 => ChChannelPrinter Int (NullExpanderT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Int m0 => ChChannelPrinter Int (QuietT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Int m0 => ChChannelPrinter Int (ScannerBufferT m0)
+ Text.Chatty.Interactor: instance ChChannelPrinter Int m0 => ChChannelPrinter Int (SpawnOverlayT m0)
+ Text.Chatty.Interactor: instance ChClock m0 => ChClock (AnsiPrinterT m0)
+ Text.Chatty.Interactor: instance ChClock m0 => ChClock (BoolArchiverT m0)
+ Text.Chatty.Interactor: instance ChClock m0 => ChClock (BoolFilterT m0)
+ Text.Chatty.Interactor: instance ChClock m0 => ChClock (DeafT m0)
+ Text.Chatty.Interactor: instance ChClock m0 => ChClock (ExpanderT m0)
+ Text.Chatty.Interactor: instance ChClock m0 => ChClock (HandleArchiverT m0)
+ Text.Chatty.Interactor: instance ChClock m0 => ChClock (HandleCloserT m0)
+ Text.Chatty.Interactor: instance ChClock m0 => ChClock (HandleFilterT m0)
+ Text.Chatty.Interactor: instance ChClock m0 => ChClock (HereStringT m0)
+ Text.Chatty.Interactor: instance ChClock m0 => ChClock (HistoryT m0)
+ Text.Chatty.Interactor: instance ChClock m0 => ChClock (HtmlPrinterT m0)
+ Text.Chatty.Interactor: instance ChClock m0 => ChClock (InRedirT m0)
+ Text.Chatty.Interactor: instance ChClock m0 => ChClock (IntArchiverT m0)
+ Text.Chatty.Interactor: instance ChClock m0 => ChClock (IntFilterT m0)
+ Text.Chatty.Interactor: instance ChClock m0 => ChClock (JoinerT m0)
+ Text.Chatty.Interactor: instance ChClock m0 => ChClock (NullExpanderT m0)
+ Text.Chatty.Interactor: instance ChClock m0 => ChClock (OutRedirT m0)
+ Text.Chatty.Interactor: instance ChClock m0 => ChClock (QuietT m0)
+ Text.Chatty.Interactor: instance ChClock m0 => ChClock (RecorderT m0)
+ Text.Chatty.Interactor: instance ChClock m0 => ChClock (ScannerBufferT m0)
+ Text.Chatty.Interactor: instance ChClock m0 => ChClock (SpawnOverlayT m0)
+ Text.Chatty.Interactor: instance ChExpand m0 => ChExpand (BoolArchiverT m0)
+ Text.Chatty.Interactor: instance ChExpand m0 => ChExpand (BoolFilterT m0)
+ Text.Chatty.Interactor: instance ChExpand m0 => ChExpand (DeafT m0)
+ Text.Chatty.Interactor: instance ChExpand m0 => ChExpand (HandleArchiverT m0)
+ Text.Chatty.Interactor: instance ChExpand m0 => ChExpand (HandleCloserT m0)
+ Text.Chatty.Interactor: instance ChExpand m0 => ChExpand (HandleFilterT m0)
+ Text.Chatty.Interactor: instance ChExpand m0 => ChExpand (HereStringT m0)
+ Text.Chatty.Interactor: instance ChExpand m0 => ChExpand (InRedirT m0)
+ Text.Chatty.Interactor: instance ChExpand m0 => ChExpand (IntArchiverT m0)
+ Text.Chatty.Interactor: instance ChExpand m0 => ChExpand (IntFilterT m0)
+ Text.Chatty.Interactor: instance ChExpand m0 => ChExpand (JoinerT m0)
+ Text.Chatty.Interactor: instance ChExpand m0 => ChExpand (OutRedirT m0)
+ Text.Chatty.Interactor: instance ChExpand m0 => ChExpand (QuietT m0)
+ Text.Chatty.Interactor: instance ChExpand m0 => ChExpand (RecorderT m0)
+ Text.Chatty.Interactor: instance ChExpand m0 => ChExpand (ScannerBufferT m0)
+ Text.Chatty.Interactor: instance ChExpand m0 => ChExpand (SpawnOverlayT m0)
+ Text.Chatty.Interactor: instance ChExpanderEnv m0 => ChExpanderEnv (AnsiPrinterT m0)
+ Text.Chatty.Interactor: instance ChExpanderEnv m0 => ChExpanderEnv (BoolArchiverT m0)
+ Text.Chatty.Interactor: instance ChExpanderEnv m0 => ChExpanderEnv (BoolFilterT m0)
+ Text.Chatty.Interactor: instance ChExpanderEnv m0 => ChExpanderEnv (DeafT m0)
+ Text.Chatty.Interactor: instance ChExpanderEnv m0 => ChExpanderEnv (HandleArchiverT m0)
+ Text.Chatty.Interactor: instance ChExpanderEnv m0 => ChExpanderEnv (HandleCloserT m0)
+ Text.Chatty.Interactor: instance ChExpanderEnv m0 => ChExpanderEnv (HandleFilterT m0)
+ Text.Chatty.Interactor: instance ChExpanderEnv m0 => ChExpanderEnv (HereStringT m0)
+ Text.Chatty.Interactor: instance ChExpanderEnv m0 => ChExpanderEnv (HistoryT m0)
+ Text.Chatty.Interactor: instance ChExpanderEnv m0 => ChExpanderEnv (HtmlPrinterT m0)
+ Text.Chatty.Interactor: instance ChExpanderEnv m0 => ChExpanderEnv (InRedirT m0)
+ Text.Chatty.Interactor: instance ChExpanderEnv m0 => ChExpanderEnv (IntArchiverT m0)
+ Text.Chatty.Interactor: instance ChExpanderEnv m0 => ChExpanderEnv (IntFilterT m0)
+ Text.Chatty.Interactor: instance ChExpanderEnv m0 => ChExpanderEnv (JoinerT m0)
+ Text.Chatty.Interactor: instance ChExpanderEnv m0 => ChExpanderEnv (OutRedirT m0)
+ Text.Chatty.Interactor: instance ChExpanderEnv m0 => ChExpanderEnv (QuietT m0)
+ Text.Chatty.Interactor: instance ChExpanderEnv m0 => ChExpanderEnv (RecorderT m0)
+ Text.Chatty.Interactor: instance ChExpanderEnv m0 => ChExpanderEnv (ScannerBufferT m0)
+ Text.Chatty.Interactor: instance ChExpanderEnv m0 => ChExpanderEnv (SpawnOverlayT m0)
+ Text.Chatty.Interactor: instance ChExtendedPrinter m0 => ChExtendedPrinter (HereStringT m0)
+ Text.Chatty.Interactor: instance ChExtendedPrinter m0 => ChExtendedPrinter (HistoryT m0)
+ Text.Chatty.Interactor: instance ChExtendedPrinter m0 => ChExtendedPrinter (InRedirT m0)
+ Text.Chatty.Interactor: instance ChExtendedPrinter m0 => ChExtendedPrinter (NullExpanderT m0)
+ Text.Chatty.Interactor: instance ChExtendedPrinter m0 => ChExtendedPrinter (QuietT m0)
+ Text.Chatty.Interactor: instance ChExtendedPrinter m0 => ChExtendedPrinter (ScannerBufferT m0)
+ Text.Chatty.Interactor: instance ChExtendedPrinter m0 => ChExtendedPrinter (SpawnOverlayT m0)
+ Text.Chatty.Interactor: instance ChFinalizer m0 => ChFinalizer (AnsiPrinterT m0)
+ Text.Chatty.Interactor: instance ChFinalizer m0 => ChFinalizer (BoolArchiverT m0)
+ Text.Chatty.Interactor: instance ChFinalizer m0 => ChFinalizer (BoolFilterT m0)
+ Text.Chatty.Interactor: instance ChFinalizer m0 => ChFinalizer (DeafT m0)
+ Text.Chatty.Interactor: instance ChFinalizer m0 => ChFinalizer (ExpanderT m0)
+ Text.Chatty.Interactor: instance ChFinalizer m0 => ChFinalizer (HandleArchiverT m0)
+ Text.Chatty.Interactor: instance ChFinalizer m0 => ChFinalizer (HandleFilterT m0)
+ Text.Chatty.Interactor: instance ChFinalizer m0 => ChFinalizer (HistoryT m0)
+ Text.Chatty.Interactor: instance ChFinalizer m0 => ChFinalizer (HtmlPrinterT m0)
+ Text.Chatty.Interactor: instance ChFinalizer m0 => ChFinalizer (IntArchiverT m0)
+ Text.Chatty.Interactor: instance ChFinalizer m0 => ChFinalizer (IntFilterT m0)
+ Text.Chatty.Interactor: instance ChFinalizer m0 => ChFinalizer (JoinerT m0)
+ Text.Chatty.Interactor: instance ChFinalizer m0 => ChFinalizer (NullExpanderT m0)
+ Text.Chatty.Interactor: instance ChFinalizer m0 => ChFinalizer (OutRedirT m0)
+ Text.Chatty.Interactor: instance ChFinalizer m0 => ChFinalizer (RecorderT m0)
+ Text.Chatty.Interactor: instance ChFinalizer m0 => ChFinalizer (ScannerBufferT m0)
+ Text.Chatty.Interactor: instance ChFinalizer m0 => ChFinalizer (SpawnOverlayT m0)
+ Text.Chatty.Interactor: instance ChHistoryEnv m0 => ChHistoryEnv (AnsiPrinterT m0)
+ Text.Chatty.Interactor: instance ChHistoryEnv m0 => ChHistoryEnv (BoolArchiverT m0)
+ Text.Chatty.Interactor: instance ChHistoryEnv m0 => ChHistoryEnv (BoolFilterT m0)
+ Text.Chatty.Interactor: instance ChHistoryEnv m0 => ChHistoryEnv (DeafT m0)
+ Text.Chatty.Interactor: instance ChHistoryEnv m0 => ChHistoryEnv (ExpanderT m0)
+ Text.Chatty.Interactor: instance ChHistoryEnv m0 => ChHistoryEnv (HandleArchiverT m0)
+ Text.Chatty.Interactor: instance ChHistoryEnv m0 => ChHistoryEnv (HandleCloserT m0)
+ Text.Chatty.Interactor: instance ChHistoryEnv m0 => ChHistoryEnv (HandleFilterT m0)
+ Text.Chatty.Interactor: instance ChHistoryEnv m0 => ChHistoryEnv (HereStringT m0)
+ Text.Chatty.Interactor: instance ChHistoryEnv m0 => ChHistoryEnv (HtmlPrinterT m0)
+ Text.Chatty.Interactor: instance ChHistoryEnv m0 => ChHistoryEnv (InRedirT m0)
+ Text.Chatty.Interactor: instance ChHistoryEnv m0 => ChHistoryEnv (IntArchiverT m0)
+ Text.Chatty.Interactor: instance ChHistoryEnv m0 => ChHistoryEnv (IntFilterT m0)
+ Text.Chatty.Interactor: instance ChHistoryEnv m0 => ChHistoryEnv (JoinerT m0)
+ Text.Chatty.Interactor: instance ChHistoryEnv m0 => ChHistoryEnv (OutRedirT m0)
+ Text.Chatty.Interactor: instance ChHistoryEnv m0 => ChHistoryEnv (QuietT m0)
+ Text.Chatty.Interactor: instance ChHistoryEnv m0 => ChHistoryEnv (RecorderT m0)
+ Text.Chatty.Interactor: instance ChHistoryEnv m0 => ChHistoryEnv (ScannerBufferT m0)
+ Text.Chatty.Interactor: instance ChHistoryEnv m0 => ChHistoryEnv (SpawnOverlayT m0)
+ Text.Chatty.Interactor: instance ChPrinter m0 => ChPrinter (ExpanderT m0)
+ Text.Chatty.Interactor: instance ChPrinter m0 => ChPrinter (HandleCloserT m0)
+ Text.Chatty.Interactor: instance ChPrinter m0 => ChPrinter (HereStringT m0)
+ Text.Chatty.Interactor: instance ChPrinter m0 => ChPrinter (HistoryT m0)
+ Text.Chatty.Interactor: instance ChPrinter m0 => ChPrinter (InRedirT m0)
+ Text.Chatty.Interactor: instance ChPrinter m0 => ChPrinter (NullExpanderT m0)
+ Text.Chatty.Interactor: instance ChPrinter m0 => ChPrinter (QuietT m0)
+ Text.Chatty.Interactor: instance ChPrinter m0 => ChPrinter (ScannerBufferT m0)
+ Text.Chatty.Interactor: instance ChPrinter m0 => ChPrinter (SpawnOverlayT m0)
+ Text.Chatty.Interactor: instance ChRandom m0 => ChRandom (AnsiPrinterT m0)
+ Text.Chatty.Interactor: instance ChRandom m0 => ChRandom (BoolArchiverT m0)
+ Text.Chatty.Interactor: instance ChRandom m0 => ChRandom (BoolFilterT m0)
+ Text.Chatty.Interactor: instance ChRandom m0 => ChRandom (DeafT m0)
+ Text.Chatty.Interactor: instance ChRandom m0 => ChRandom (ExpanderT m0)
+ Text.Chatty.Interactor: instance ChRandom m0 => ChRandom (HandleArchiverT m0)
+ Text.Chatty.Interactor: instance ChRandom m0 => ChRandom (HandleCloserT m0)
+ Text.Chatty.Interactor: instance ChRandom m0 => ChRandom (HandleFilterT m0)
+ Text.Chatty.Interactor: instance ChRandom m0 => ChRandom (HereStringT m0)
+ Text.Chatty.Interactor: instance ChRandom m0 => ChRandom (HistoryT m0)
+ Text.Chatty.Interactor: instance ChRandom m0 => ChRandom (HtmlPrinterT m0)
+ Text.Chatty.Interactor: instance ChRandom m0 => ChRandom (InRedirT m0)
+ Text.Chatty.Interactor: instance ChRandom m0 => ChRandom (IntArchiverT m0)
+ Text.Chatty.Interactor: instance ChRandom m0 => ChRandom (IntFilterT m0)
+ Text.Chatty.Interactor: instance ChRandom m0 => ChRandom (JoinerT m0)
+ Text.Chatty.Interactor: instance ChRandom m0 => ChRandom (NullExpanderT m0)
+ Text.Chatty.Interactor: instance ChRandom m0 => ChRandom (OutRedirT m0)
+ Text.Chatty.Interactor: instance ChRandom m0 => ChRandom (QuietT m0)
+ Text.Chatty.Interactor: instance ChRandom m0 => ChRandom (RecorderT m0)
+ Text.Chatty.Interactor: instance ChRandom m0 => ChRandom (ScannerBufferT m0)
+ Text.Chatty.Interactor: instance ChRandom m0 => ChRandom (SpawnOverlayT m0)
+ Text.Chatty.Interactor: instance ChScanner m0 => ChScanner (AnsiPrinterT m0)
+ Text.Chatty.Interactor: instance ChScanner m0 => ChScanner (BoolArchiverT m0)
+ Text.Chatty.Interactor: instance ChScanner m0 => ChScanner (BoolFilterT m0)
+ Text.Chatty.Interactor: instance ChScanner m0 => ChScanner (DeafT m0)
+ Text.Chatty.Interactor: instance ChScanner m0 => ChScanner (ExpanderT m0)
+ Text.Chatty.Interactor: instance ChScanner m0 => ChScanner (HandleArchiverT m0)
+ Text.Chatty.Interactor: instance ChScanner m0 => ChScanner (HandleCloserT m0)
+ Text.Chatty.Interactor: instance ChScanner m0 => ChScanner (HandleFilterT m0)
+ Text.Chatty.Interactor: instance ChScanner m0 => ChScanner (HistoryT m0)
+ Text.Chatty.Interactor: instance ChScanner m0 => ChScanner (HtmlPrinterT m0)
+ Text.Chatty.Interactor: instance ChScanner m0 => ChScanner (IntArchiverT m0)
+ Text.Chatty.Interactor: instance ChScanner m0 => ChScanner (IntFilterT m0)
+ Text.Chatty.Interactor: instance ChScanner m0 => ChScanner (JoinerT m0)
+ Text.Chatty.Interactor: instance ChScanner m0 => ChScanner (NullExpanderT m0)
+ Text.Chatty.Interactor: instance ChScanner m0 => ChScanner (OutRedirT m0)
+ Text.Chatty.Interactor: instance ChScanner m0 => ChScanner (RecorderT m0)
+ Text.Chatty.Interactor: instance ChScanner m0 => ChScanner (SpawnOverlayT m0)
+ Text.Chatty.Interactor: instance ChSpawn m0 => ChSpawn (AnsiPrinterT m0)
+ Text.Chatty.Interactor: instance ChSpawn m0 => ChSpawn (BoolArchiverT m0)
+ Text.Chatty.Interactor: instance ChSpawn m0 => ChSpawn (BoolFilterT m0)
+ Text.Chatty.Interactor: instance ChSpawn m0 => ChSpawn (DeafT m0)
+ Text.Chatty.Interactor: instance ChSpawn m0 => ChSpawn (ExpanderT m0)
+ Text.Chatty.Interactor: instance ChSpawn m0 => ChSpawn (HandleArchiverT m0)
+ Text.Chatty.Interactor: instance ChSpawn m0 => ChSpawn (HandleCloserT m0)
+ Text.Chatty.Interactor: instance ChSpawn m0 => ChSpawn (HandleFilterT m0)
+ Text.Chatty.Interactor: instance ChSpawn m0 => ChSpawn (HereStringT m0)
+ Text.Chatty.Interactor: instance ChSpawn m0 => ChSpawn (HistoryT m0)
+ Text.Chatty.Interactor: instance ChSpawn m0 => ChSpawn (HtmlPrinterT m0)
+ Text.Chatty.Interactor: instance ChSpawn m0 => ChSpawn (InRedirT m0)
+ Text.Chatty.Interactor: instance ChSpawn m0 => ChSpawn (IntArchiverT m0)
+ Text.Chatty.Interactor: instance ChSpawn m0 => ChSpawn (IntFilterT m0)
+ Text.Chatty.Interactor: instance ChSpawn m0 => ChSpawn (JoinerT m0)
+ Text.Chatty.Interactor: instance ChSpawn m0 => ChSpawn (NullExpanderT m0)
+ Text.Chatty.Interactor: instance ChSpawn m0 => ChSpawn (OutRedirT m0)
+ Text.Chatty.Interactor: instance ChSpawn m0 => ChSpawn (QuietT m0)
+ Text.Chatty.Interactor: instance ChSpawn m0 => ChSpawn (RecorderT m0)
+ Text.Chatty.Interactor: instance ChSpawn m0 => ChSpawn (ScannerBufferT m0)
+ Text.Chatty.Printer: class Monad m => ChPrinter m where mnoecho = mprint mflush = return () mnomask = mprint
+ Text.Chatty.Printer: instance ChPrinter IO
+ Text.Chatty.Printer: instance Monad m => ChPrinter (DeafT m)
+ Text.Chatty.Printer: instance Monad m => ChPrinter (RecorderT m)
+ Text.Chatty.Printer: instance Monad m => ChPrinter (StateT String m)
+ Text.Chatty.Printer: instance MonadIO m => ChPrinter (OutRedirT m)
+ Text.Chatty.Printer: instance RedirectionTarget Handle OutRedirT a a
+ Text.Chatty.Scanner: class Monad m => ChScanner m where mscanh = return Nothing
+ Text.Chatty.Scanner: instance ChFinalizer m => ChFinalizer (HereStringT m)
+ Text.Chatty.Scanner: instance ChFinalizer m => ChFinalizer (InRedirT m)
+ Text.Chatty.Scanner: instance ChScanner IO
+ Text.Chatty.Scanner: instance Monad m => ChScanner (HereStringT m)
+ Text.Chatty.Scanner: instance Monad m => ChScanner (QuietT m)
+ Text.Chatty.Scanner: instance Monad m => ChScanner (StateT String m)
+ Text.Chatty.Scanner: instance MonadIO m => ChScanner (InRedirT m)
+ Text.Chatty.Scanner: instance RedirectionSource Handle InRedirT a a
+ Text.Chatty.Scanner.Buffered: class ChScanner m => ChBufferedScanner m
+ Text.Chatty.Scanner.Buffered: class ChBufferedScanner m => ChStackBufferedScanner m
+ Text.Chatty.Scanner.Buffered: instance ChScanner m => ChBufferedScanner (ScannerBufferT m)
+ Text.Chatty.Scanner.Buffered: instance ChScanner m => ChScanner (ScannerBufferT m)
+ Text.Chatty.Scanner.Buffered: instance ChScanner m => ChStackBufferedScanner (ScannerBufferT m)
+ Text.Chatty.Scanner.Buffered: instance Monad m => ChBufferedScanner (HereStringT m)
+ Text.Chatty.Scanner.Buffered: instance Monad m => ChBufferedScanner (StateT String m)
+ Text.Chatty.Scanner.Buffered: mpop :: ChStackBufferedScanner m => m ()
+ Text.Chatty.Scanner.Buffered: mpush :: ChStackBufferedScanner m => m ()
- System.Chatty.Commands: cat :: (MonadScanner m, MonadPrinter m, MonadIO m, Functor m, MonadFinalizer m) => [String] -> m ()
+ System.Chatty.Commands: cat :: (ChScanner m, ChPrinter m, MonadIO m, Functor m, ChFinalizer m) => [String] -> m ()
- System.Chatty.Commands: echo :: (MonadPrinter m, MonadExpand m) => String => m ()
+ System.Chatty.Commands: echo :: (ChPrinter m, ChExpand m) => String => m ()
- System.Chatty.Commands: head :: (MonadScanner m, MonadPrinter m, MonadIO m, Functor m) => Int -> m ()
+ System.Chatty.Commands: head :: (ChScanner m, ChPrinter m, MonadIO m, Functor m) => Int -> m ()
- System.Chatty.Commands: ls :: (MonadIO m, MonadPrinter m) => [String] -> m ()
+ System.Chatty.Commands: ls :: (MonadIO m, ChPrinter m) => [String] -> m ()
- System.Chatty.Commands: pwd :: (MonadIO m, MonadPrinter m) => m ()
+ System.Chatty.Commands: pwd :: (MonadIO m, ChPrinter m) => m ()
- System.Chatty.Commands: tac :: (MonadFinalizer m, MonadScanner m, MonadPrinter m, MonadIO m, Functor m) => [String] -> m ()
+ System.Chatty.Commands: tac :: (ChFinalizer m, ChScanner m, ChPrinter m, MonadIO m, Functor m) => [String] -> m ()
- System.Chatty.Commands: tail :: (MonadScanner m, MonadPrinter m, MonadIO m, Functor m) => Int -> m ()
+ System.Chatty.Commands: tail :: (ChScanner m, ChPrinter m, MonadIO m, Functor m) => Int -> m ()
- System.Chatty.Commands: tee :: (MonadScanner m, MonadPrinter m, MonadIO m, Functor m) => String -> m ()
+ System.Chatty.Commands: tee :: (ChScanner m, ChPrinter m, MonadIO m, Functor m) => String -> m ()
- System.Chatty.Commands: wc :: (MonadScanner m, MonadPrinter m, MonadIO m, Functor m) => WcMode -> m ()
+ System.Chatty.Commands: wc :: (ChScanner m, ChPrinter m, MonadIO m, Functor m) => WcMode -> m ()
- System.Chatty.Misc: mgetstamp :: MonadClock m => m NominalDiffTime
+ System.Chatty.Misc: mgetstamp :: ChClock m => m NominalDiffTime
- System.Chatty.Misc: mrandom :: (MonadRandom m, Random r) => m r
+ System.Chatty.Misc: mrandom :: (ChRandom m, Random r) => m r
- System.Chatty.Misc: mrandomR :: (MonadRandom m, Random r) => (r, r) -> m r
+ System.Chatty.Misc: mrandomR :: (ChRandom m, Random r) => (r, r) -> m r
- System.Chatty.Misc: mutctime :: MonadClock m => m UTCTime
+ System.Chatty.Misc: mutctime :: ChClock m => m UTCTime
- System.Chatty.Spawn: mah :: MonadSpawn m => String -> m Bool
+ System.Chatty.Spawn: mah :: ChSpawn m => String -> m Bool
- System.Chatty.Spawn: mspw :: MonadSpawn m => String -> [String] -> Either Handle String -> m (Int, String, [Handle])
+ System.Chatty.Spawn: mspw :: ChSpawn m => String -> [String] -> Either Handle String -> m (Int, String, [Handle])
- System.Chatty.Spawn: spawn :: (MonadFinalizer m, MonadScanner m, MonadPrinter m, MonadSpawn m, Functor m) => String -> [String] -> m Int
+ System.Chatty.Spawn: spawn :: (ChFinalizer m, ChScanner m, ChPrinter m, ChSpawn m, Functor m) => String -> [String] -> m Int
- System.Chatty.Spawn.Builtins: withBuiltins :: (Functor m, MonadSpawn m) => SpawnOverlayT m a -> m a
+ System.Chatty.Spawn.Builtins: withBuiltins :: (Functor m, ChSpawn m) => SpawnOverlayT m a -> m a
- Text.Chatty.Channel.Broadcast: bbracket :: BroadcasterBracket c m => (c -> m Bool) -> m a -> m a
+ Text.Chatty.Channel.Broadcast: bbracket :: ChBroadcasterBracket c m => (c -> m Bool) -> m a -> m a
- Text.Chatty.Channel.Broadcast: bfin :: BroadcasterBracket c m => (c -> m Bool) -> m ()
+ Text.Chatty.Channel.Broadcast: bfin :: ChBroadcasterBracket c m => (c -> m Bool) -> m ()
- Text.Chatty.Channel.Broadcast: bprint :: Broadcaster c m => (c -> m Bool) -> String -> m ()
+ Text.Chatty.Channel.Broadcast: bprint :: ChBroadcaster c m => (c -> m Bool) -> String -> m ()
- Text.Chatty.Channel.Broadcast: bstart :: BroadcasterBracket c m => (c -> m Bool) -> m ()
+ Text.Chatty.Channel.Broadcast: bstart :: ChBroadcasterBracket c m => (c -> m Bool) -> m ()
- Text.Chatty.Channel.Printer: cbracket :: ChannelPrinter c m => c -> m a -> m a
+ Text.Chatty.Channel.Printer: cbracket :: ChChannelPrinter c m => c -> m a -> m a
- Text.Chatty.Channel.Printer: cfin :: ChannelPrinter c m => c -> m ()
+ Text.Chatty.Channel.Printer: cfin :: ChChannelPrinter c m => c -> m ()
- Text.Chatty.Channel.Printer: cprint :: ChannelPrinter c m => c -> String -> m ()
+ Text.Chatty.Channel.Printer: cprint :: ChChannelPrinter c m => c -> String -> m ()
- Text.Chatty.Channel.Printer: cstart :: ChannelPrinter c m => c -> m ()
+ Text.Chatty.Channel.Printer: cstart :: ChChannelPrinter c m => c -> m ()
- Text.Chatty.Channel.Printer: cthis :: ChannelPrinter c m => m c
+ Text.Chatty.Channel.Printer: cthis :: ChChannelPrinter c m => m c
- Text.Chatty.Expansion: expand :: MonadExpand e => String -> e String
+ Text.Chatty.Expansion: expand :: ChExpand e => String -> e String
- Text.Chatty.Expansion.History: expandHist :: HistoryEnv h => String -> h String
+ Text.Chatty.Expansion.History: expandHist :: ChHistoryEnv h => String -> h String
- Text.Chatty.Expansion.History: mcounth :: HistoryEnv he => he Int
+ Text.Chatty.Expansion.History: mcounth :: ChHistoryEnv he => he Int
- Text.Chatty.Expansion.History: mgeth :: HistoryEnv he => Int -> he String
+ Text.Chatty.Expansion.History: mgeth :: ChHistoryEnv he => Int -> he String
- Text.Chatty.Expansion.History: mputh :: HistoryEnv he => String -> he ()
+ Text.Chatty.Expansion.History: mputh :: ChHistoryEnv he => String -> he ()
- Text.Chatty.Expansion.Vars: expandVars :: (Monad m, Functor m, ExpanderEnv m) => String -> m String
+ Text.Chatty.Expansion.Vars: expandVars :: (Monad m, Functor m, ChExpanderEnv m) => String -> m String
- Text.Chatty.Expansion.Vars: mgetv :: ExpanderEnv ee => String -> ee EnvVar
+ Text.Chatty.Expansion.Vars: mgetv :: ChExpanderEnv ee => String -> ee EnvVar
- Text.Chatty.Expansion.Vars: mputv :: ExpanderEnv ee => String -> EnvVar -> ee ()
+ Text.Chatty.Expansion.Vars: mputv :: ChExpanderEnv ee => String -> EnvVar -> ee ()
- Text.Chatty.Extended.Printer: ebracket :: ExtendedPrinter m => Colour -> m a -> m a
+ Text.Chatty.Extended.Printer: ebracket :: ChExtendedPrinter m => Colour -> m a -> m a
- Text.Chatty.Extended.Printer: efin :: ExtendedPrinter m => m ()
+ Text.Chatty.Extended.Printer: efin :: ChExtendedPrinter m => m ()
- Text.Chatty.Extended.Printer: enomask :: ExtendedPrinter m => Colour -> String -> m ()
+ Text.Chatty.Extended.Printer: enomask :: ChExtendedPrinter m => Colour -> String -> m ()
- Text.Chatty.Extended.Printer: enomaskLn :: ExtendedPrinter m => Colour -> String -> m ()
+ Text.Chatty.Extended.Printer: enomaskLn :: ChExtendedPrinter m => Colour -> String -> m ()
- Text.Chatty.Extended.Printer: eprint :: ExtendedPrinter m => Colour -> String -> m ()
+ Text.Chatty.Extended.Printer: eprint :: ChExtendedPrinter m => Colour -> String -> m ()
- Text.Chatty.Extended.Printer: eprintLn :: ExtendedPrinter m => Colour -> String -> m ()
+ Text.Chatty.Extended.Printer: eprintLn :: ChExtendedPrinter m => Colour -> String -> m ()
- Text.Chatty.Extended.Printer: estart :: ExtendedPrinter m => Colour -> m ()
+ Text.Chatty.Extended.Printer: estart :: ChExtendedPrinter m => Colour -> m ()
- Text.Chatty.Extended.Printer: expandClr :: ExtendedPrinter m => String -> m ()
+ Text.Chatty.Extended.Printer: expandClr :: ChExtendedPrinter m => String -> m ()
- Text.Chatty.Finalizer: mfin :: MonadFinalizer m => m ()
+ Text.Chatty.Finalizer: mfin :: ChFinalizer m => m ()
- Text.Chatty.Finalizer: mqfh :: MonadFinalizer m => Handle -> m ()
+ Text.Chatty.Finalizer: mqfh :: ChFinalizer m => Handle -> m ()
- Text.Chatty.Finalizer: mqfhs :: MonadFinalizer m => [Handle] -> m ()
+ Text.Chatty.Finalizer: mqfhs :: ChFinalizer m => [Handle] -> m ()
- Text.Chatty.Printer: (.>.) :: (RedirectionTarget t mt a r, Functor m, MonadIO m, MonadPrinter (mt m)) => mt m a -> t -> m r
+ Text.Chatty.Printer: (.>.) :: (RedirectionTarget t mt a r, Functor m, MonadIO m, ChPrinter (mt m)) => mt m a -> t -> m r
- Text.Chatty.Printer: (.>>.) :: (RedirectionTarget t mt a r, Functor m, MonadIO m, MonadPrinter (mt m)) => mt m a -> t -> m r
+ Text.Chatty.Printer: (.>>.) :: (RedirectionTarget t mt a r, Functor m, MonadIO m, ChPrinter (mt m)) => mt m a -> t -> m r
- Text.Chatty.Printer: mflush :: MonadPrinter m => m ()
+ Text.Chatty.Printer: mflush :: ChPrinter m => m ()
- Text.Chatty.Printer: mnoecho :: MonadPrinter m => String -> m ()
+ Text.Chatty.Printer: mnoecho :: ChPrinter m => String -> m ()
- Text.Chatty.Printer: mnomask :: MonadPrinter m => String -> m ()
+ Text.Chatty.Printer: mnomask :: ChPrinter m => String -> m ()
- Text.Chatty.Printer: mnomaskLn :: MonadPrinter m => String -> m ()
+ Text.Chatty.Printer: mnomaskLn :: ChPrinter m => String -> m ()
- Text.Chatty.Printer: mprint :: MonadPrinter m => String -> m ()
+ Text.Chatty.Printer: mprint :: ChPrinter m => String -> m ()
- Text.Chatty.Printer: mprintLn :: MonadPrinter m => String -> m ()
+ Text.Chatty.Printer: mprintLn :: ChPrinter m => String -> m ()
- Text.Chatty.Scanner: (.<.) :: (RedirectionSource t mt a r, MonadFinalizer m, Functor m, MonadIO m, MonadScanner (mt m)) => mt m a -> t -> m a
+ Text.Chatty.Scanner: (.<.) :: (RedirectionSource t mt a r, ChFinalizer m, Functor m, MonadIO m, ChScanner (mt m)) => mt m a -> t -> m r
- Text.Chatty.Scanner: (.<<.) :: (RedirectionHeredoc t mt a r, Functor m, MonadScanner (mt m)) => mt m a -> t -> m a
+ Text.Chatty.Scanner: (.<<.) :: (RedirectionHeredoc t mt a r, Functor m, ChScanner (mt m)) => mt m a -> t -> m r
- Text.Chatty.Scanner: mready :: MonadScanner m => m Bool
+ Text.Chatty.Scanner: mready :: ChScanner m => m Bool
- Text.Chatty.Scanner: mscan1 :: MonadScanner m => m Char
+ Text.Chatty.Scanner: mscan1 :: ChScanner m => m Char
- Text.Chatty.Scanner: mscanL :: MonadScanner m => m String
+ Text.Chatty.Scanner: mscanL :: ChScanner m => m String
- Text.Chatty.Scanner: mscanLn :: MonadScanner m => m String
+ Text.Chatty.Scanner: mscanLn :: ChScanner m => m String
- Text.Chatty.Scanner: mscanN :: MonadScanner m => Int -> m String
+ Text.Chatty.Scanner: mscanN :: ChScanner m => Int -> m String
- Text.Chatty.Scanner: mscanh :: MonadScanner m => m (Maybe Handle)
+ Text.Chatty.Scanner: mscanh :: ChScanner m => m (Maybe Handle)
- Text.Chatty.Scanner: mscannable :: MonadScanner m => m Bool
+ Text.Chatty.Scanner: mscannable :: ChScanner m => m Bool
- Text.Chatty.Scanner: runInRedirFT :: (Functor m, MonadIO m, MonadFinalizer m) => InRedirT m a -> FilePath -> m a
+ Text.Chatty.Scanner: runInRedirFT :: (Functor m, MonadIO m, ChFinalizer m) => InRedirT m a -> FilePath -> m a
- Text.Chatty.Scanner.Buffered: ScannerBuffer :: (String -> m (a, String)) -> ScannerBufferT m a
+ Text.Chatty.Scanner.Buffered: ScannerBuffer :: ([String] -> m (a, [String])) -> ScannerBufferT m a
- Text.Chatty.Scanner.Buffered: mpeek1 :: BufferedScanner m => m Char
+ Text.Chatty.Scanner.Buffered: mpeek1 :: ChBufferedScanner m => m Char
- Text.Chatty.Scanner.Buffered: mprepend :: BufferedScanner m => String -> m ()
+ Text.Chatty.Scanner.Buffered: mprepend :: ChBufferedScanner m => String -> m ()
- Text.Chatty.Scanner.Buffered: runScannerBufferT :: ScannerBufferT m a -> String -> m (a, String)
+ Text.Chatty.Scanner.Buffered: runScannerBufferT :: ScannerBufferT m a -> [String] -> m (a, [String])

Files

System/Chatty/Commands.hs view
@@ -37,32 +37,32 @@ import System.Posix.Files  -- | Like 'cat' on the command line. Accepts a list of filenames. Simple pass-through, if none are provided.-cat :: (MonadScanner m, MonadPrinter m, MonadIO m,Functor m,MonadFinalizer m) => [String] -> m ()+cat :: (ChScanner m, ChPrinter m, MonadIO m,Functor m,ChFinalizer m) => [String] -> m () cat [] = mscanL >>= mprint cat [f] = cat [] .<. f cat (f:fs) = cat [f] >> cat fs  -- | Like 'cat', but reverses the line order.-tac :: (MonadFinalizer m,MonadScanner m, MonadPrinter m, MonadIO m,Functor m) => [String] -> m ()+tac :: (ChFinalizer m,ChScanner m, ChPrinter m, MonadIO m,Functor m) => [String] -> m () tac [] = mscanL >>= (mprint . unlines . reverse . lines) tac fs = cat fs .|. tac []  -- | Pass-through, simultanously writing all input to a given file.-tee :: (MonadScanner m, MonadPrinter m, MonadIO m, Functor m) => String -> m ()+tee :: (ChScanner m, ChPrinter m, MonadIO m, Functor m) => String -> m () tee f = do   s <- mscanL   mprint s .>. f   mprint s  -- | Prints the given string, after expanding it.-echo :: (MonadPrinter m,MonadExpand m) => String => m ()+echo :: (ChPrinter m,ChExpand m) => String => m () echo = mprintLn <=< expand  -- | Mode for 'wc'. data WcMode = CountChars | CountLines | CountWords  -- | Count characters, lines or words of the input.-wc :: (MonadScanner m, MonadPrinter m, MonadIO m, Functor m) => WcMode -> m ()+wc :: (ChScanner m, ChPrinter m, MonadIO m, Functor m) => WcMode -> m () wc CountChars = mscanL >>= (mprint . show . length) >> mprint "\n" wc CountLines = mscanL >>= (mprint . show . length . lines) >> mprint "\n" wc CountWords = mscanL >>= (mprint . show . length . words) >> mprint "\n"@@ -72,11 +72,11 @@ cd = liftIO . setCurrentDirectory  -- | Print current working directory.-pwd :: (MonadIO m,MonadPrinter m) => m ()+pwd :: (MonadIO m,ChPrinter m) => m () pwd = liftIO getCurrentDirectory >>= mprintLn  -- | List directory contents of the given directories (current one, if empty list).-ls :: (MonadIO m,MonadPrinter m) => [String] -> m ()+ls :: (MonadIO m,ChPrinter m) => [String] -> m () ls [] = liftIO (getDirectoryContents ".") >>= (mprint . unlines) ls [p] = do   fs <- liftIO $ getFileStatus p@@ -87,9 +87,9 @@ ls (p:ps) = ls [p] >> ls ps  -- | Filters only the first n lines of the input.-head :: (MonadScanner m,MonadPrinter m,MonadIO m,Functor m) => Int -> m ()+head :: (ChScanner m,ChPrinter m,MonadIO m,Functor m) => Int -> m () head n = mscanL >>= (mprint . unlines . take n . lines)  -- | FIlters only the last n lines of the input.-tail :: (MonadScanner m,MonadPrinter m,MonadIO m,Functor m) => Int -> m ()+tail :: (ChScanner m,ChPrinter m,MonadIO m,Functor m) => Int -> m () tail n = mscanL >>= (mprint . unlines . reverse . take n . reverse . lines)
System/Chatty/Misc.hs view
@@ -27,24 +27,24 @@ import System.Random  -- | Typeclass for all monads that know the time-class (Functor m,Monad m) => MonadClock m where+class (Functor m,Monad m) => ChClock m where   -- | Get UTC Time   mutctime :: m UTCTime   -- | Get timestamp, guaranteed to grow   mgetstamp :: m NominalDiffTime   mgetstamp = fmap (flip diffUTCTime (UTCTime (fromGregorian 1970 1 1) (secondsToDiffTime 0))) mutctime -instance MonadClock IO where+instance ChClock IO where   mutctime = getCurrentTime  -- | Typeclass for all monads that may provide random numbers-class Monad m => MonadRandom m where+class Monad m => ChRandom m where   -- | Get a single random number   mrandom :: Random r => m r   -- | Get a single random number in the given range   mrandomR :: Random r => (r,r) -> m r -instance MonadRandom IO where+instance ChRandom IO where   mrandom = randomIO   mrandomR rs = randomRIO rs 
System/Chatty/Spawn.hs view
@@ -31,13 +31,13 @@ import qualified System.Process as P  -- | Class for all (real or pseudo) process-spawning monads.-class Monad m => MonadSpawn m where+class Monad m => ChSpawn m where   -- | Spawn process   mspw :: String -> [String] -> Either Handle String -> m (Int,String,[Handle])   -- | Accept handle as input?   mah :: String -> m Bool -instance MonadSpawn IO where+instance ChSpawn IO where   mspw pn as (Left h) = do     (_, Just hout, _, ph) <- P.createProcess (P.proc pn as){       P.std_in = P.UseHandle h,@@ -57,7 +57,7 @@   mah = return $ return True  -- | Spawn process-spawn :: (MonadFinalizer m,MonadScanner m,MonadPrinter m, MonadSpawn m,Functor m) => String -> [String] -> m Int+spawn :: (ChFinalizer m,ChScanner m,ChPrinter m, ChSpawn m,Functor m) => String -> [String] -> m Int spawn fn as = do   ah <- mah fn   mscanh >>= \h' -> case if ah then h' else Nothing of
System/Chatty/Spawn/Builtins.hs view
@@ -26,10 +26,10 @@ import System.Chatty.Spawn.Overlay  -- | Use builtins if possible.-withBuiltins :: (Functor m, MonadSpawn m) => SpawnOverlayT m a -> m a+withBuiltins :: (Functor m, ChSpawn m) => SpawnOverlayT m a -> m a withBuiltins m = fmap fst $ runSpawnOverlayT m builtins -builtins :: MonadSpawn m => [(String,[String] -> String -> m (Int,String))]+builtins :: ChSpawn m => [(String,[String] -> String -> m (Int,String))] builtins =   ("cat", \_ si -> return (0,si)):   []
System/Chatty/Spawn/Overlay.hs view
@@ -43,7 +43,7 @@ instance Monad m => Functor (SpawnOverlayT m) where   fmap f a = SpawnOverlay $ \s -> do (a',s') <- runSpawnOverlayT a s; return (f a',s') -instance MonadSpawn m => MonadSpawn (SpawnOverlayT m) where+instance ChSpawn m => ChSpawn (SpawnOverlayT m) where   mspw pn as (Right si) = SpawnOverlay $ \s ->     case pn `elem` (map fst s) of       True -> let c = snd $ head $ filter ((==pn).fst) s
Text/Chatty/Channel/Broadcast.hs view
@@ -31,12 +31,12 @@ import Text.Chatty.Channel.Printer  -- | Typeclass for all channel printers that may broadcast to all channels that fulfill a condition.-class ChannelPrinter c m => Broadcaster c m where+class ChChannelPrinter c m => ChBroadcaster c m where   -- | Print the string to all channels that fulfill the current condition.   bprint :: (c -> m Bool) -> String -> m ()  -- | Typeclass for all broadcaster that may embrace sections-class Broadcaster c m => BroadcasterBracket c m where+class ChBroadcaster c m => ChBroadcasterBracket c m where   -- | Run the function and print to all channels that fulfill the given condition.   bbracket :: (c -> m Bool) -> m a -> m a   bbracket f m = bstart f >> m >>= \a -> bfin f >> return a
Text/Chatty/Channel/Printer.hs view
@@ -22,7 +22,7 @@  -- | Provides a printer class that offers several channels. module Text.Chatty.Channel.Printer (-  ChannelPrinter (..),+  ChChannelPrinter (..),   ArchiverT (..),   IntArchiverT,   BoolArchiverT,@@ -43,7 +43,7 @@ import System.IO  -- | Typeclass for all printers that offer several channels.-class (MonadPrinter m,Eq c) => ChannelPrinter c m where+class (ChPrinter m,Eq c) => ChChannelPrinter c m where   -- | Run the function with the given channel.   cbracket :: c -> m a -> m a   cbracket c m = cstart c >> m >>= \a -> cfin c >> return a@@ -79,10 +79,10 @@   | p == k = (p,f a) : ps   | otherwise = (p,a) : withAssoc k n f ps -instance (Eq c,Monad m) => MonadPrinter (ArchiverT c m) where+instance (Eq c,Monad m) => ChPrinter (ArchiverT c m) where   mprint s = Archiver $ \(r,c:cx) -> return ((),(withAssoc c [] (s:) r,c:cx)) -instance (Eq c,Monad m) => ChannelPrinter c (ArchiverT c m) where+instance (Eq c,Monad m) => ChChannelPrinter c (ArchiverT c m) where   cbracket c m = Archiver $ \(r,c1) -> do     (a,(r',_)) <- runArchiverT' m (r,c:c1)     return (a,(r',c1))@@ -114,11 +114,11 @@ instance Monad m => Functor (FilterT c m) where   fmap f a = liftM f a -instance (Eq c,MonadPrinter m) => MonadPrinter (FilterT c m) where+instance (Eq c,ChPrinter m) => ChPrinter (FilterT c m) where   mprint str = Filter $ \(c,c1:cx) -> if c == c1 then mprint str >> return ((),c1:cx) else return ((),c1:cx)   mnomask str = Filter $ \(c,c1:cx) -> if c == c1 then mnomask str >> return ((),c1:cx) else return ((),c1:cx) -instance (Eq c,MonadPrinter m) => ChannelPrinter c (FilterT c m) where+instance (Eq c,ChPrinter m) => ChChannelPrinter c (FilterT c m) where   cbracket c m = Filter $ \(cf,cx) -> do     (a,_) <- runFilterT m (cf,c:cx)     return (a,cx)@@ -147,11 +147,11 @@ instance Functor m => Functor (JoinerT m) where   fmap f (Joiner j) = Joiner $ fmap f j -instance MonadPrinter m => MonadPrinter (JoinerT m) where+instance ChPrinter m => ChPrinter (JoinerT m) where   mprint = lift . mprint   mnomask = lift . mnomask -instance (Eq c,MonadPrinter m) => ChannelPrinter c (JoinerT m) where+instance (Eq c,ChPrinter m) => ChChannelPrinter c (JoinerT m) where   cstart _ = return ()   cfin _ = return ()   cbracket _ m = m
Text/Chatty/Expansion.hs view
@@ -27,7 +27,7 @@ import Control.Monad.Trans.Class  -- | Typeclass for all string-expanding monads.-class Monad e => MonadExpand e where+class Monad e => ChExpand e where   -- | Expand the given string.   expand :: String -> e String @@ -46,7 +46,7 @@ instance MonadIO m => MonadIO (NullExpanderT m) where   liftIO = lift . liftIO -instance Monad m => MonadExpand (NullExpanderT m) where+instance Monad m => ChExpand (NullExpanderT m) where   expand = return  withExpansion :: Monad m => NullExpanderT m a -> m a
Text/Chatty/Expansion/History.hs view
@@ -46,19 +46,19 @@ instance Monad m => Functor (HistoryT m) where   fmap f a = History $ \s -> do (a',s') <- runHistoryT a s; return (f a',s') -class Monad he => HistoryEnv he where+class Monad he => ChHistoryEnv he where   mcounth :: he Int   mgeth :: Int -> he String   mputh :: String -> he () -instance Monad m => HistoryEnv (HistoryT m) where+instance Monad m => ChHistoryEnv (HistoryT m) where   mcounth = History $ runKleisli (arr length &&& id)   mgeth i     | i <= 0 = let j = -i in History $ runKleisli (arr (!!j) &&& id)     | otherwise = History . runKleisli $ arr ((!!i).reverse &&& id)   mputh s = History . runKleisli $ arr (const () &&& (s:)) -expandHist :: HistoryEnv h => String -> h String+expandHist :: ChHistoryEnv h => String -> h String expandHist [] = return [] expandHist ('!':ss) =   let (nm,rm) = (takeWhile isNum &&& dropWhile isNum) ss@@ -73,7 +73,7 @@       return (h++hs) expandHist (s:ss) = do ss' <- expandHist ss; return (s:ss') -instance MonadExpand m => MonadExpand (HistoryT m) where+instance ChExpand m => ChExpand (HistoryT m) where   expand = lift . expand <=< expandHist  withHistory :: Monad m => HistoryT m a -> m a
Text/Chatty/Expansion/Vars.hs view
@@ -78,14 +78,14 @@   liftIO $ forM_ vs $ \(k,v) -> setEnv k (show v) True   return ((),vs) -instance MonadExpand IO where+instance ChExpand IO where   expand = expandVars -instance MonadExpand m => MonadExpand (ExpanderT m) where+instance ChExpand m => ChExpand (ExpanderT m) where   expand = lift . expand <=< expandVars  -- | Expand $variables-expandVars :: (Monad m,Functor m,ExpanderEnv m) => String -> m String+expandVars :: (Monad m,Functor m,ChExpanderEnv m) => String -> m String expandVars [] = return [] expandVars ('\\':'$':ss) = do r <- expandVars ss; return ('$':r) expandVars ('$':'{':ss) =@@ -111,19 +111,19 @@ isAnum = (`elem` (['a'..'z']++['A'..'Z']++"_"++['0'..'9']))  -- | Typeclass for all environment storages.-class Monad ee => ExpanderEnv ee where+class Monad ee => ChExpanderEnv ee where   -- | Get environment variable   mgetv :: String -> ee EnvVar   -- | Put environment variable   mputv :: String -> EnvVar -> ee () -instance Monad m => ExpanderEnv (ExpanderT m) where+instance Monad m => ChExpanderEnv (ExpanderT m) where   mgetv s = Expander $ \vs -> return $     case filter ((==s).fst) vs of       [] -> (NotSet,vs)       ((_,v):_) -> (v,vs)   mputv k v = Expander $ \vs -> return ((),(k,v):filter ((/=k).fst) vs) -instance ExpanderEnv IO where+instance ChExpanderEnv IO where   mgetv = fmap (\v -> case v of Nothing -> NotSet; Just v' -> Literal v') . getEnv   mputv k v = setEnv k (show v) True
Text/Chatty/Extended/ANSI.hs view
@@ -19,7 +19,7 @@   along with Chatty. If not, see <http://www.gnu.org/licenses/>. -} --- | Provides an ExtendedPrinter that handles colours using standardized ANSI codes.+-- | Provides a 'ChExtendedPrinter' that handles colours using standardized ANSI codes. module Text.Chatty.Extended.ANSI where  import qualified System.Console.ANSI as A@@ -30,7 +30,7 @@ import Text.Chatty.Extended.Printer import Text.Chatty.Expansion --- | An ExtendedPrinter that uses ANSI colour codes.+-- | A 'ChExtendedPrinter' that uses ANSI colour codes. newtype AnsiPrinterT m a = AnsiPrinter { runAnsiPrinterT :: [Colour] -> m (a,[Colour]) }  instance Monad m => Monad (AnsiPrinterT m) where@@ -46,13 +46,13 @@ instance MonadIO m => MonadIO (AnsiPrinterT m) where   liftIO = lift . liftIO -instance MonadPrinter m => MonadPrinter (AnsiPrinterT m) where+instance ChPrinter m => ChPrinter (AnsiPrinterT m) where   mprint = lift . mprint   mnoecho = lift . mnoecho   mflush = lift mflush   mnomask = lift . mnomask -instance MonadPrinter m => ExtendedPrinter (AnsiPrinterT m) where+instance ChPrinter m => ChExtendedPrinter (AnsiPrinterT m) where   estart c = AnsiPrinter $ \c1 -> do     mprint $ A.setSGRCode [A.SetColor A.Foreground (mkColourInt c) (mkColourCode c)]     return ((),c:c1)@@ -65,7 +65,7 @@         mprint $ A.setSGRCode [A.Reset]         return ((),[]) -instance (Functor m,MonadExpand m) => MonadExpand (AnsiPrinterT m) where+instance (Functor m,ChExpand m) => ChExpand (AnsiPrinterT m) where   expand s = AnsiPrinter $ \cx -> do     s1 <- (expand =<<) $ liftM (replay.snd) $ runRecorderT $ liftM fst $ flip runAnsiPrinterT cx $ expandClr s     return (s1, cx)
Text/Chatty/Extended/HTML.hs view
@@ -19,7 +19,7 @@   along with Chatty. If not, see <http://www.gnu.org/licenses/>. -} --- | Provides an 'ExtendedPrinter' that handles colours using HTML output.+-- | Provides an 'ChExtendedPrinter' that handles colours using HTML output. module Text.Chatty.Extended.HTML where  import Text.Chatty.Printer@@ -29,7 +29,7 @@ import Control.Monad.Trans.Class import Control.Monad.IO.Class --- | An 'ExtendedPrinter' for HTML output.+-- | An 'ChExtendedPrinter' for HTML output. newtype HtmlPrinterT m a = HtmlPrinter { runHtmlPrinterT :: m a }  instance Monad m => Monad (HtmlPrinterT m) where@@ -45,17 +45,17 @@ instance MonadIO m => MonadIO (HtmlPrinterT m) where   liftIO = lift . liftIO -instance MonadPrinter m => MonadPrinter (HtmlPrinterT m) where+instance ChPrinter m => ChPrinter (HtmlPrinterT m) where   mprint = lift . mprint . concatMap maskHtml   mnoecho = lift . mnoecho . concatMap maskHtml   mflush = lift mflush   mnomask = lift . mnomask -instance MonadPrinter m => ExtendedPrinter (HtmlPrinterT m) where+instance ChPrinter m => ChExtendedPrinter (HtmlPrinterT m) where   estart c =  lift $ mprint $ concat ["<span style=\"color: #", hexColour c, ";\">"]   efin = lift $ mprint "</span>" -instance (Functor m,MonadExpand m) => MonadExpand (HtmlPrinterT m) where+instance (Functor m,ChExpand m) => ChExpand (HtmlPrinterT m) where   expand = lift . expand <=< liftM (replay.snd) . runRecorderT . runHtmlPrinterT . expandClr  -- | Convert the given character to its HTML representation.
Text/Chatty/Extended/Printer.hs view
@@ -20,7 +20,7 @@ -}  -- | Provides an extended printer class that supports colours.-module Text.Chatty.Extended.Printer (ExtendedPrinter(..),Tone(..),Colour(..),expandClr) where+module Text.Chatty.Extended.Printer (ChExtendedPrinter(..),Tone(..),Colour(..),expandClr) where  import Text.Chatty.Printer @@ -30,7 +30,7 @@ data Colour = Dull Tone | Vivid Tone  -- | Typeclass for all printers that support colourized output.-class MonadPrinter m => ExtendedPrinter m where+class ChPrinter m => ChExtendedPrinter m where   -- | Run the function with the given colour.   ebracket :: Colour -> m a -> m a   ebracket c m = do estart c; a <- m; efin; return a@@ -62,7 +62,7 @@  procClr c ss = let (nm,rm) = splitBrace ss in ebracket c (expandClr nm) >> expandClr rm -expandClr :: ExtendedPrinter m => String -> m ()+expandClr :: ChExtendedPrinter m => String -> m () expandClr ('%':'{':'V':'0':';':ss) = procClr (Vivid Black) ss expandClr ('%':'{':'V':'1':';':ss) = procClr (Vivid Red) ss expandClr ('%':'{':'V':'2':';':ss) = procClr (Vivid Green) ss
Text/Chatty/Finalizer.hs view
@@ -28,7 +28,7 @@ import System.IO  -- | Class for all handle-finalizing monads. Required for file redirections.-class Monad m => MonadFinalizer m where+class Monad m => ChFinalizer m where   -- | Enqueue handle   mqfh :: Handle -> m ()   -- | Enqueue list of handles@@ -53,7 +53,7 @@ instance MonadIO m => MonadIO (HandleCloserT m) where   liftIO = lift . liftIO -instance MonadIO m => MonadFinalizer (HandleCloserT m) where+instance MonadIO m => ChFinalizer (HandleCloserT m) where   mqfh h = HandleCloser $ \hs -> return ((),h:hs)   mfin = HandleCloser $ \hs -> do     sequence_ $ fmap (liftIO.hClose) hs@@ -62,4 +62,3 @@ -- | Run function with handle closer withLazyIO :: (MonadIO m,Functor m) => HandleCloserT m a -> m a withLazyIO m = fmap fst $ runHandleCloserT (do a <- m; mfin; return a) []-
Text/Chatty/Interactor/Templates.hs view
@@ -42,10 +42,10 @@ import System.Chatty.Misc import System.IO --- | Automatically derives a MonadScanner instance for you.+-- | Automatically derives a ChScanner instance for you. mkScanner :: Name -> Q [Dec] mkScanner s = [d|-    instance MonadScanner m => MonadScanner ($sx m) where+    instance ChScanner m => ChScanner ($sx m) where       mscan1 = lift mscan1       mscanL = lift mscanL       mscannable = lift mscannable@@ -54,19 +54,19 @@   |]   where sx = strToType s --- | Automatically derives a BufferedScanner instance for you.+-- | Automatically derives a ChBufferedScanner instance for you. mkBufferedScanner :: Name -> Q [Dec] mkBufferedScanner s = [d|-    instance BufferedScanner m => BufferedScanner ($sx m) where+    instance ChBufferedScanner m => ChBufferedScanner ($sx m) where       mpeek1 = lift mpeek1       mprepend = lift . mprepend   |]   where sx = strToType s --- | Automatically derives a MonadPrinter instance for you.+-- | Automatically derives a ChPrinter instance for you. mkPrinter :: Name -> Q [Dec] mkPrinter s = [d|-    instance MonadPrinter m => MonadPrinter ($sx m) where+    instance ChPrinter m => ChPrinter ($sx m) where       mprint = lift . mprint       mnoecho = lift . mnoecho       mflush = lift mflush@@ -74,10 +74,10 @@   |]   where sx = strToType s --- | Automatically derives an ExtendedPrinter instance for you.+-- | Automatically derives an ChExtendedPrinter instance for you. mkExtendedPrinter :: Name -> Q [Dec] mkExtendedPrinter s = [d|-    instance ExtendedPrinter m => ExtendedPrinter ($sx m) where+    instance ChExtendedPrinter m => ChExtendedPrinter ($sx m) where       estart = lift . estart       efin = lift efin       eprint c = lift . eprint c@@ -85,10 +85,10 @@   |]                where sx = strToType s --- | Automatically derives a ChannelPrinter instance for you.+-- | Automatically derives a ChChannelPrinter instance for you. mkChannelPrinter :: Name ->  Name -> Q [Dec] mkChannelPrinter c s = [d|-    instance ChannelPrinter $cx m => ChannelPrinter $cx ($sx m) where+    instance ChChannelPrinter $cx m => ChChannelPrinter $cx ($sx m) where       cstart = lift . cstart       cfin = lift . cfin       cprint c = lift . cprint c@@ -109,7 +109,7 @@   where sx = strToType s         cx = strToType c-} --- | Automatically derives ChannelPrinter instances for 'Int', 'Bool' and 'Handle' channels.+-- | Automatically derives ChChannelPrinter instances for 'Int', 'Bool' and 'Handle' channels. mkDefCP :: Name -> Q [Dec] mkDefCP s = mkInteractor s (mkChannelPrinter ''Int) (mkChannelPrinter ''Bool) (mkChannelPrinter ''Handle) @@ -117,64 +117,64 @@ mkDefBC :: Name -> Q [Dec] mkDefBC s = mkInteractor s (mkBroadcaster ''Int) (mkBroadcaster ''Bool) (mkBroadcaster ''Handle)-} --- | Automatically derives a MonadFinalizer instance for you.+-- | Automatically derives a ChFinalizer instance for you. mkFinalizer :: Name -> Q [Dec] mkFinalizer s = [d|-    instance MonadFinalizer m => MonadFinalizer ($sx m) where+    instance ChFinalizer m => ChFinalizer ($sx m) where       mqfh = lift . mqfh       mfin = lift mfin   |]                  where sx = strToType s --- | Automatically derives a MonadExpand instance for you.+-- | Automatically derives a ChExpand instance for you. mkExpander :: Name -> Q [Dec] mkExpander s = [d|-    instance MonadExpand m => MonadExpand ($sx m) where+    instance ChExpand m => ChExpand ($sx m) where       expand = lift . expand   |]   where sx = strToType s --- | Automatically derives an ExpanderEnv instance for you+-- | Automatically derives an ChExpanderEnv instance for you mkExpanderEnv :: Name -> Q [Dec] mkExpanderEnv s = [d|-    instance ExpanderEnv m => ExpanderEnv ($sx m) where+    instance ChExpanderEnv m => ChExpanderEnv ($sx m) where       mgetv = lift . mgetv       mputv k v = lift $ mputv k v   |]   where sx = strToType s --- | Automatically derives a HistoryEnv instance for you+-- | Automatically derives a ChHistoryEnv instance for you mkHistoryEnv :: Name -> Q [Dec] mkHistoryEnv s = [d|-    instance HistoryEnv m => HistoryEnv ($sx m) where+    instance ChHistoryEnv m => ChHistoryEnv ($sx m) where       mcounth = lift mcounth       mgeth = lift . mgeth       mputh = lift . mputh   |]   where sx = strToType s --- | Automatically derives a MonadSpawn instance for you.+-- | Automatically derives a ChSpawn instance for you. mkSpawn :: Name -> Q [Dec] mkSpawn s = [d|-    instance MonadSpawn m => MonadSpawn ($sx m) where+    instance ChSpawn m => ChSpawn ($sx m) where       mspw pn as si = lift $ mspw pn as si       mah = lift . mah   |]   where sx = strToType s --- | Automatically derives a MonadRandom instance for you.+-- | Automatically derives a ChRandom instance for you. mkRandom :: Name -> Q [Dec] mkRandom s = [d|-    instance MonadRandom m => MonadRandom ($sx m) where+    instance ChRandom m => ChRandom ($sx m) where       mrandom = lift mrandom       mrandomR = lift . mrandomR   |]               where sx = strToType s --- | Automatically derives a MonadClock instance for you.+-- | Automatically derives a ChClock instance for you. mkClock :: Name -> Q [Dec] mkClock s = [d|-    instance MonadClock m => MonadClock ($sx m) where+    instance ChClock m => ChClock ($sx m) where       mutctime = lift mutctime       mgetstamp = lift mgetstamp   |]           
− Text/Chatty/Parser.hs
@@ -1,92 +0,0 @@-{--  This module is part of Chatty.-  Copyleft (c) 2014 Marvin Cohrs--  All wrongs reversed. Sharing is an act of love, not crime.-  Please share Antisplice with everyone you like.--  Chatty is free software: you can redistribute it and/or modify-  it under the terms of the GNU Affero General Public License as published by-  the Free Software Foundation, either version 3 of the License, or-  (at your option) any later version.--  Chatty is distributed in the hope that it will be useful,-  but WITHOUT ANY WARRANTY; without even the implied warranty of-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the-  GNU Affero General Public License for more details.--  You should have received a copy of the GNU Affero General Public License-  along with Chatty. If not, see <http://www.gnu.org/licenses/>.--}--module Text.Chatty.Parser where--import Control.Monad-import Data.Char-import Text.Chatty.Scanner--class MonadScanner m => MonadParser m where-  pabort :: m a-  (??) :: Eq a => m a -> m a -> m a-  (???) :: m a -> m a -> m a-  ptry :: MonadPlus n => m a -> m (n a)--request :: MonadScanner m => m Char-request = mscan1--match :: MonadParser m => Char -> m Char-match c = do-  k <- request-  if k == c then return c else pabort--matchs :: MonadParser m => String -> m String-matchs [] = return []-matchs (c:cs) = do-  match c-  matchs cs-  return (c:cs)--white :: MonadParser m => m Char-white = do-  k <- request-  if isSpace k then return k else pabort--digit :: MonadParser m => m Int-digit = do-  k <- request-  if isDigit k then return (read [k]) else pabort--alpha :: MonadParser m => m Char-alpha = do-  k <- request-  if isAlpha k then return k else pabort--anum :: MonadParser m => m Char-anum = do-  k <- request-  if isAlphaNum k then return k else pabort--possibly :: MonadParser m => m a -> m (Maybe a)-possibly f = liftM Just f ??? return Nothing--many :: MonadParser m => m a -> m [a]-many f = do-  x <- possibly f-  case x of-    Nothing -> return []-    Just x -> do-      xs <- many f-      return (x : xs)--some :: MonadParser m => m a -> m [a]-some f = do-  x <- f-  xs <- many f-  return (x : xs)--number :: MonadParser m => m Int-number = do-  many white-  ds <- some digit-  many white-  return $ foldl (\k n -> k * 10 + n) 0 ds
− Text/Chatty/Parser/Nondeterministic.hs
@@ -1,81 +0,0 @@-{--  This module is part of Chatty.-  Copyleft (c) 2014 Marvin Cohrs--  All wrongs reversed. Sharing is an act of love, not crime.-  Please share Antisplice with everyone you like.--  Chatty is free software: you can redistribute it and/or modify-  it under the terms of the GNU Affero General Public License as published by-  the Free Software Foundation, either version 3 of the License, or-  (at your option) any later version.--  Chatty is distributed in the hope that it will be useful,-  but WITHOUT ANY WARRANTY; without even the implied warranty of-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the-  GNU Affero General Public License for more details.--  You should have received a copy of the GNU Affero General Public License-  along with Chatty. If not, see <http://www.gnu.org/licenses/>.--}--module Text.Chatty.Parser.Nondeterministic where--import Control.Monad-import Data.List-import qualified Data.Foldable as F-import Text.Chatty.Parser-import Text.Chatty.Scanner--data ForkerT m a = Result (m a) (Char -> ForkerT m a) | Failed--instance (MonadPlus m,F.Foldable m) => Monad (ForkerT m) where-  return a = Result (return a) $ const Failed-  (Result as f) >>= m = Result (results >>= rResult) (\k -> F.foldl (???) (f k >>= m) (liftM (flip rFunction k) results))-    where isResult (Result _ _) = True-          isResult _ = False-          rResult (Result x _) = x-          rFunction (Result _ f) = f-          results = mfilter isResult $ liftM m as-  Failed >>= m = Failed-  fail _ = Failed--instance (MonadPlus m,F.Foldable m) => MonadParser (ForkerT m) where-  pabort = Failed-  Failed ?? b = b-  a ?? Failed = a-  (Result as f) ?? (Result bs g) = Result (msum $ liftM return $ nub $ F.foldr (:) [] $ mplus as bs) $ \k -> f k ?? g k-  Failed ??? b = b-  a ??? Failed = a-  (Result as f) ??? (Result bs g) = Result (mplus as bs) $ \k -> f k ??? g k-  ptry Failed = Failed-  ptry (Result as f) = Result (msum $ liftM return [msum $ liftM return $ F.foldr (:) [] as]) $ \k -> ptry $ f k--instance (MonadPlus m,F.Foldable m) => MonadScanner (ForkerT m) where-  mscan1 = Result mzero return-  mscanL = do-    c <- mscan1-    cs <- mscanL-    return (c:cs)-  mscannable = return True-  mready = return False--feedForkerT1 :: (MonadPlus m,F.Foldable m) => Char -> ForkerT m a -> ForkerT m a-feedForkerT1 _ Failed = Failed-feedForkerT1 c (Result _ f) = f c--feedForkerT :: (MonadPlus m,F.Foldable m) => String -> ForkerT m a -> ForkerT m a-feedForkerT [] = id-feedForkerT (c:cs) = feedForkerT cs . feedForkerT1 c--embedForkerT :: (MonadPlus n,F.Foldable n,MonadScanner m) => ForkerT n a -> m (n a)-embedForkerT f = do-  b <- mscannable-  if not b then-      case f of-        Failed -> return mzero-        Result xs _ -> return xs-    else do-      k <- mscan1-      embedForkerT $ feedForkerT1 k f-        
Text/Chatty/Printer.hs view
@@ -31,7 +31,7 @@ import System.IO  -- | A typeclass for all monads that may output strings.-class Monad m => MonadPrinter m where+class Monad m => ChPrinter m where   -- | Just print it!   mprint :: String -> m ()   -- | Print it, except you are IO.@@ -44,12 +44,12 @@   mnomask :: String -> m ()   mnomask = mprint -instance MonadPrinter IO where+instance ChPrinter IO where   mprint = putStr   mnoecho _ = return ()   mflush = hFlush stdout -instance Monad m => MonadPrinter (StateT String m) where+instance Monad m => ChPrinter (StateT String m) where   mprint s = modify (++s)  -- | DeafT discards all output (much like >\/dev\/null in the shell)@@ -68,7 +68,7 @@ instance MonadIO m => MonadIO (DeafT m) where   liftIO = lift . liftIO -instance Monad m => MonadPrinter (DeafT m) where+instance Monad m => ChPrinter (DeafT m) where   mprint _ = return ()  -- Definition of OutRedirT + instances@@ -87,7 +87,7 @@ instance MonadIO m => MonadIO (OutRedirT m) where   liftIO = lift . liftIO -instance MonadIO m => MonadPrinter (OutRedirT m) where+instance MonadIO m => ChPrinter (OutRedirT m) where   mprint s = OutRedir $ \h -> do liftIO $ hPutStr h s; return ((),h)   mflush = OutRedir $ \h -> do liftIO $ hFlush h; return ((),h) @@ -129,7 +129,7 @@ instance MonadTrans RecorderT where   lift m = Recorder $ \s -> do a <- m; return (a,s) -instance Monad m => MonadPrinter (RecorderT m) where+instance Monad m => ChPrinter (RecorderT m) where   mprint s = Recorder $ \s' -> return ((),s:s')  instance Monad m => Functor (RecorderT m) where@@ -164,11 +164,11 @@ runRecorderT = fmap (second Replayable) . flip runRecorderT' []  -- | Line-terminating alternative to 'mprint'-mprintLn :: MonadPrinter m => String -> m ()+mprintLn :: ChPrinter m => String -> m () mprintLn = mprint . (++"\n")  -- | Line-terminating alternative to 'mnomask'-mnomaskLn :: MonadPrinter m => String -> m ()+mnomaskLn :: ChPrinter m => String -> m () mnomaskLn = mnomask . (++"\n")  -- Shell-like syntax@@ -179,9 +179,9 @@ -- | Class for all redirection targets. class RedirectionTarget t mt a r | t -> mt, t a -> r where   -- | Overwriting redirection.-  (.>.) :: (Functor m,MonadIO m,MonadPrinter (mt m)) => mt m a -> t -> m r+  (.>.) :: (Functor m,MonadIO m,ChPrinter (mt m)) => mt m a -> t -> m r   -- | Appending redirection.-  (.>>.) :: (Functor m,MonadIO m,MonadPrinter (mt m)) => mt m a -> t -> m r+  (.>>.) :: (Functor m,MonadIO m,ChPrinter (mt m)) => mt m a -> t -> m r   (.>>.) = (.>.) instance RedirectionTarget DiscardO DeafT a a where   m .>. _ = runDeafT m@@ -190,3 +190,5 @@ instance RedirectionTarget FilePath OutRedirT a a where   m .>. fp = runOutRedirFT m fp WriteMode   m .>>. fp = runOutRedirFT m fp AppendMode+instance RedirectionTarget Handle OutRedirT a a where+  m .>. fp = runOutRedirT m fp
Text/Chatty/Scanner.hs view
@@ -32,7 +32,7 @@ import System.IO  -- | A typeclass for all monads that may read input.-class Monad m => MonadScanner m where+class Monad m => ChScanner m where   -- | Read one single character   mscan1 :: m Char   -- | Lazily read all the input.@@ -45,16 +45,16 @@   -- | Input available yet?   mready :: m Bool --- MonadScanner instance for: IO-instance MonadScanner IO where+-- ChScanner instance for: IO+instance ChScanner IO where   mscan1 = getChar   mscanL = getContents   mscannable = fmap not isEOF   mscanh = return $ Just stdin   mready = hReady stdin --- MonadScanner instance for: StateT String-instance Monad m => MonadScanner (StateT String m) where+-- ChScanner instance for: StateT String+instance Monad m => ChScanner (StateT String m) where   mscan1 = do     c <- gets head     modify tail@@ -81,7 +81,7 @@ instance Monad m => Functor (HereStringT m) where   fmap f a = HereString $ \s -> do (a',s') <- runHereStringT a s; return (f a',s') -instance Monad m => MonadScanner (HereStringT m) where+instance Monad m => ChScanner (HereStringT m) where   mscan1 = HereString $ \(s:ss) -> return (s,ss)   mscanL = HereString $ \s -> return (s,[])   mscannable = HereString $ \s -> return (not $ null s,s)@@ -90,7 +90,7 @@ instance MonadIO m => MonadIO (HereStringT m) where   liftIO = lift . liftIO -instance MonadFinalizer m => MonadFinalizer (HereStringT m) where+instance ChFinalizer m => ChFinalizer (HereStringT m) where   mqfh = lift . mqfh   mfin = lift mfin @@ -105,7 +105,7 @@ instance MonadTrans QuietT where   lift = Quiet -instance Monad m => MonadScanner (QuietT m) where+instance Monad m => ChScanner (QuietT m) where   mscan1 = return undefined   mscanL = return []   mscannable = return False@@ -130,7 +130,7 @@ instance MonadIO m => MonadIO (InRedirT m) where   liftIO = lift . liftIO -instance MonadIO m => MonadScanner (InRedirT m) where+instance MonadIO m => ChScanner (InRedirT m) where   mscan1 = InRedir $ \h -> do c <- liftIO $ hGetChar h; return (c,h)   mscanL = InRedir $ \h -> do s <- liftIO $ hGetContents h; return (s,h)   mscannable = InRedir $ \h -> do b <- liftIO $ hIsEOF h; return (b,h)@@ -140,7 +140,7 @@ instance Monad m => Functor (InRedirT m) where   fmap f a = InRedir $ \h -> do (a',h') <- runInRedirT' a h; return (f a',h') -instance MonadFinalizer m => MonadFinalizer (InRedirT m) where+instance ChFinalizer m => ChFinalizer (InRedirT m) where   mqfh = lift . mqfh   mfin = lift mfin @@ -153,7 +153,7 @@ runInRedir m h = withLazyIO $ runInRedirT m h  -- | Run InRedirT with a filename-runInRedirFT :: (Functor m,MonadIO m,MonadFinalizer m) => InRedirT m a -> FilePath -> m a+runInRedirFT :: (Functor m,MonadIO m,ChFinalizer m) => InRedirT m a -> FilePath -> m a runInRedirFT m fp = do   h <- liftIO $ openFile fp ReadMode   a <- runInRedirT m h@@ -166,7 +166,7 @@ runInRedirF m fp = withLazyIO $ runInRedirFT m fp  -- | Line-scanning alternative to mscan1/L-mscanLn :: MonadScanner m => m String+mscanLn :: ChScanner m => m String mscanLn = do   h <- mscan1   if h == '\n' then return ""@@ -175,7 +175,7 @@                  return (h:hs)  -- | Scan a fixed number of chars-mscanN :: MonadScanner m => Int -> m String+mscanN :: ChScanner m => Int -> m String mscanN n   | n > 0 = do     b <- mscannable@@ -192,14 +192,16 @@ -- | Class for all primitive redirection sources. class RedirectionSource t mt a r | t -> mt, t a -> r where   -- | Redirection-  (.<.) :: (MonadFinalizer m,Functor m,MonadIO m,MonadScanner (mt m)) => mt m a -> t -> m a+  (.<.) :: (ChFinalizer m,Functor m,MonadIO m,ChScanner (mt m)) => mt m a -> t -> m r instance RedirectionSource EmptyI QuietT a a where   m .<. _ = runQuietT m instance RedirectionSource FilePath InRedirT a a where   m .<. fp = runInRedirFT m fp+instance RedirectionSource Handle InRedirT a a where+  m .<. fp = runInRedirT m fp -- | Class for all Here-Documents class RedirectionHeredoc t mt a r | t -> mt, t a -> r where   -- | Redirection-  (.<<.) :: (Functor m,MonadScanner (mt m)) => mt m a -> t -> m a+  (.<<.) :: (Functor m,ChScanner (mt m)) => mt m a -> t -> m r instance RedirectionHeredoc String HereStringT a a where   m .<<. str = fmap fst $ runHereStringT m str
Text/Chatty/Scanner/Buffered.hs view
@@ -21,6 +21,7 @@   along with Chatty. If not, see <http://www.gnu.org/licenses/>. -} +-- | Provides a typeclass for buffered scanners as well as a buffering monad transformer. module Text.Chatty.Scanner.Buffered where  import Control.Monad@@ -29,19 +30,30 @@ import Control.Monad.Trans.Class import Text.Chatty.Scanner -class MonadScanner m => BufferedScanner m where+-- | Typeclass for all buffered 'ChScanner's.+class ChScanner m => ChBufferedScanner m where+  -- | Scan the next character without removing it.   mpeek1 :: m Char+  -- | Prepend the given character to the scannable input.   mprepend :: String -> m () -instance Monad m => BufferedScanner (StateT String m) where+-- | Typeclass for all 'BufferedScanner's with support for pushing and popping.+class ChBufferedScanner m => ChStackBufferedScanner m where+  -- | Push the current input state to the stack.+  mpush :: m ()+  -- | Pop the previous input state from the stack.+  mpop :: m ()++instance Monad m => ChBufferedScanner (StateT String m) where   mpeek1 = gets head   mprepend s = modify (s++)   -instance Monad m => BufferedScanner (HereStringT m) where+instance Monad m => ChBufferedScanner (HereStringT m) where   mpeek1 = HereString $ \ss -> return (head ss, ss)   mprepend s = HereString $ \ss -> return ((), s++ss) -newtype ScannerBufferT m a = ScannerBuffer { runScannerBufferT :: String -> m (a,String) }+-- | A buffering 'MonadScanner' transformer that lets you use 'mpeek1' and 'mprepend' everywhere.+newtype ScannerBufferT m a = ScannerBuffer { runScannerBufferT :: [String] -> m (a,[String]) }  instance Monad m => Monad (ScannerBufferT m) where   return a = ScannerBuffer $ \s -> return (a,s)@@ -53,17 +65,20 @@ instance Monad m => Functor (ScannerBufferT m) where   fmap = liftM -instance MonadScanner m => MonadScanner (ScannerBufferT m) where-  mscan1 = ScannerBuffer $ \ss -> (if null ss then do s <- mscan1; return (s,[]) else return (head ss,tail ss))-  mscanL = ScannerBuffer $ \ss -> do l <- mscanL; return (ss++l, [])-  mscannable = ScannerBuffer $ \ss -> (if null ss then do b <- mscannable; return (b,[]) else return (True,ss))+instance ChScanner m => ChScanner (ScannerBufferT m) where+  mscan1 = ScannerBuffer $ \(ss:sx) -> (if null ss then do s <- mscan1; return (s,[]:map (s:) sx) else return (head ss,tail ss:map (head ss:) sx))+  mscanL = ScannerBuffer $ \(ss:sx) -> do l <- mscanL; return (ss++l, []:map (++l) sx)+  mscannable = ScannerBuffer $ \(ss:sx) -> (if null ss then do b <- mscannable; return (b,[]:sx) else return (True,ss:sx))   mscanh = return Nothing-  mready = ScannerBuffer $ \ss -> (if null ss then do b <- mready; return (b,[]) else return (True,ss))+  mready = ScannerBuffer $ \(ss:sx) -> (if null ss then do b <- mready; return (b,[]:sx) else return (True,ss:sx))  instance MonadIO m => MonadIO (ScannerBufferT m) where   liftIO = lift . liftIO -instance MonadScanner m => BufferedScanner (ScannerBufferT m) where-  mpeek1 = ScannerBuffer $ \ss -> (if null ss then do s <- mscan1; return (s,[s]) else return (head ss,ss))-  mprepend s = ScannerBuffer $ \ss -> return ((),s++ss)+instance ChScanner m => ChBufferedScanner (ScannerBufferT m) where+  mpeek1 = ScannerBuffer $ \(ss:sx) -> (if null ss then do s <- mscan1; return (s,[s]:sx) else return (head ss,ss:sx))+  mprepend s = ScannerBuffer $ \(ss:sx) -> return ((),(s++ss):sx) +instance ChScanner m => ChStackBufferedScanner (ScannerBufferT m) where+  mpush = ScannerBuffer $ \(ss:sx) -> return ((),ss:[]:sx)+  mpop = ScannerBuffer $ \(_:sx) -> return ((),sx)
− Text/Chatty/Typograph.hs
@@ -1,60 +0,0 @@-{-# LANGUAGE ScopedTypeVariables #-}--{--  This module is part of Chatty.-  Copyleft (c) 2014 Marvin Cohrs--  All wrongs reversed. Sharing is an act of love, not crime.-  Please share Antisplice with everyone you like.--  Chatty is free software: you can redistribute it and/or modify-  it under the terms of the GNU Affero General Public License as published by-  the Free Software Foundation, either version 3 of the License, or-  (at your option) any later version.--  Chatty is distributed in the hope that it will be useful,-  but WITHOUT ANY WARRANTY; without even the implied warranty of-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the-  GNU Affero General Public License for more details.--  You should have received a copy of the GNU Affero General Public License-  along with Chatty. If not, see <http://www.gnu.org/licenses/>.--}--module Text.Chatty.Typograph where--import Control.Monad-import Control.Monad.Trans.Class-import Data.Char-import Text.Chatty.Interactor-import Text.Chatty.Printer-import Text.Chatty.Scanner-import Text.Chatty.Scanner.Buffered--simpleTypesetter :: (Functor m,MonadScanner m,MonadPrinter m) => Int -> m ()-simpleTypesetter width = void $ runScannerBufferT (typeset width) ""-  where scanw = mscannable >>= \b -> if not b then return [] else do-          k <- mpeek1-          if isSpace k then return [] else do-            mscan1-            ks <- scanw-            return (k:ks)-        skipw :: BufferedScanner m => m Int-        skipw = mscannable >>= \b -> if not b then return 0 else do-          k <- mpeek1-          if not (isSpace k) then return 0 else do-            mscan1-            w <- skipw-            return (w + if k == '\n' then 1 else 0)-        tsetw i w-          | length w < i = mprint (w ++ " ") >> typeset (i - 1 - length w)-          | length w == i = mprintLn w >> typeset width-          | length w > width && i == width = mprintLn (take i w) >> tsetw width (drop i w)-          | otherwise = mprintLn "" >> tsetw width w-        typeset i = mscannable >>= \b -> when b $ do-          ls <- skipw-          if ls > 0-            then forM_ [1..ls] (const $ mprintLn "") >> typeset width-            else do-              w <- scanw-              tsetw i w
chatty.cabal view
@@ -10,13 +10,14 @@ -- PVP summary:      +-+------- breaking API changes --                   | | +----- non-breaking API additions --                   | | | +--- code changes with no API change-version:             0.5.5.1+version:             0.6  -- A short (one-line) description of the package.-synopsis:            Some monad transformers and typeclasses to simplify I/O on a transformer stack.+synopsis:            Some monad transformers and typeclasses for abstraction of global dependencies.  -- A longer description of the package.-description:         Some monad transformers and typeclasses for text in- and output on a function scope, including features like here-strings, file redirection, pipes and string expansion. Works best on a transformer stack.+description:         Some monad transformers and typeclasses abstracting global dependencies, like Text in- and output (incl. here-strings, pipes, recorders and file-redirections on a per-function scope),+                     process spawning, time and random number retrieval. Later also: Filesystem access, database access, authentication and privilege escalation (passing-through IO actions).  -- The license under which the package is released. license:             AGPL-3@@ -48,7 +49,7 @@  library   -- Modules exported by the library.-  exposed-modules:     Text.Chatty.Expansion, System.Chatty.Commands, System.Chatty.Spawn, Text.Chatty.Printer, Text.Chatty.Finalizer, Text.Chatty.Templates, Text.Chatty.Scanner, Text.Chatty.Interactor, System.Chatty.Spawn.Overlay, System.Chatty.Spawn.Builtins, Text.Chatty.Interactor.Templates, System.Chatty.Misc, Text.Chatty.Extended.Printer, Text.Chatty.Extended.HTML, Text.Chatty.Extended.ANSI, Text.Chatty.Expansion.Vars, Text.Chatty.Expansion.History, Text.Chatty.Channel.Printer, Text.Chatty.Channel.Broadcast, Text.Chatty.Scanner.Buffered, Text.Chatty.Typograph, Text.Chatty.Parser.Nondeterministic, Text.Chatty.Parser+  exposed-modules:     Text.Chatty.Expansion, System.Chatty.Commands, System.Chatty.Spawn, Text.Chatty.Printer, Text.Chatty.Finalizer, Text.Chatty.Templates, Text.Chatty.Scanner, Text.Chatty.Interactor, System.Chatty.Spawn.Overlay, System.Chatty.Spawn.Builtins, Text.Chatty.Interactor.Templates, System.Chatty.Misc, Text.Chatty.Extended.Printer, Text.Chatty.Extended.HTML, Text.Chatty.Extended.ANSI, Text.Chatty.Expansion.Vars, Text.Chatty.Expansion.History, Text.Chatty.Channel.Printer, Text.Chatty.Channel.Broadcast, Text.Chatty.Scanner.Buffered      -- Modules included in this library but not exported.   -- other-modules: