-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Some monad transformers and typeclasses for abstraction of global dependencies. -- -- 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). @package chatty @version 0.7.0.0 -- | Provides typeclasses for clocks and randomizer environments module System.Chatty.Misc -- | Typeclass for all monads that know the time class (Functor m, Monad m) => ChClock m where mgetstamp = fmap (flip diffUTCTime (UTCTime (fromGregorian 1970 1 1) (secondsToDiffTime 0))) mutctime -- | Get UTC Time mutctime :: ChClock m => m UTCTime -- | Get timestamp, guaranteed to grow mgetstamp :: ChClock m => m NominalDiffTime -- | Typeclass for all monads that may provide random numbers class Monad m => ChRandom m -- | Get a single random number mrandom :: (ChRandom m, Random r) => m r -- | Get a single random number in the given range mrandomR :: (ChRandom m, Random r) => (r, r) -> m r instance System.Chatty.Misc.ChClock GHC.Types.IO instance System.Chatty.Misc.ChRandom GHC.Types.IO module Text.Chatty.Templates -- | Returns a TypeQ from a name strToType :: Name -> Q Type -- | Provides handle-closing. module Text.Chatty.Finalizer -- | Class for all handle-finalizing monads. Required for file -- redirections. class Monad m => ChFinalizer m where mqfhs = foldr ((>>) . mqfh) (return ()) -- | Enqueue handle mqfh :: ChFinalizer m => Handle -> m () -- | Enqueue list of handles mqfhs :: ChFinalizer m => [Handle] -> m () -- | Finalize all queued handles mfin :: ChFinalizer m => m () -- | Handle-closing transformer newtype HandleCloserT m a HandleCloser :: ([Handle] -> m (a, [Handle])) -> HandleCloserT m a [runHandleCloserT] :: HandleCloserT m a -> [Handle] -> m (a, [Handle]) -- | Run function with handle closer withLazyIO :: (MonadIO m, Functor m) => HandleCloserT m a -> m a instance GHC.Base.Monad m => GHC.Base.Monad (Text.Chatty.Finalizer.HandleCloserT m) instance Control.Monad.Trans.Class.MonadTrans Text.Chatty.Finalizer.HandleCloserT instance GHC.Base.Monad m => GHC.Base.Functor (Text.Chatty.Finalizer.HandleCloserT m) instance GHC.Base.Monad m => GHC.Base.Applicative (Text.Chatty.Finalizer.HandleCloserT m) instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Text.Chatty.Finalizer.HandleCloserT m) instance Control.Monad.IO.Class.MonadIO m => Text.Chatty.Finalizer.ChFinalizer (Text.Chatty.Finalizer.HandleCloserT m) -- | Provides a typeclass for all monads that may scan text. module Text.Chatty.Scanner -- | A typeclass for all monads that may read input. class Monad m => ChScanner m where mscanh = return Nothing -- | Read one single character mscan1 :: ChScanner m => m Char -- | Lazily read all the input. mscanL :: ChScanner m => m String -- | Input readable? (not EOF) mscannable :: ChScanner m => m Bool -- | Return FD handle, if available mscanh :: ChScanner m => m (Maybe Handle) -- | Input available yet? mready :: ChScanner m => m Bool -- | HereStringT holds a given string and uses it as input for the function -- (much like here-strings in the shell) newtype HereStringT m a HereString :: (String -> m (a, String)) -> HereStringT m a [runHereStringT] :: HereStringT m a -> String -> m (a, String) -- | QuietT does not convey any input (much like <devnull in the -- shell) newtype QuietT m a Quiet :: m a -> QuietT m a [runQuietT] :: QuietT m a -> m a -- | InRedirT redirects all input to a given handle (much like <filename -- in the shell) newtype InRedirT m a InRedir :: (Handle -> m a) -> InRedirT m a [runInRedirT] :: InRedirT m a -> Handle -> m a -- | InRedirT on an IO monad type InRedir = InRedirT (HandleCloserT IO) -- | Run InRedir with handle runInRedir :: InRedir a -> Handle -> IO a -- | Run InRedirT with a filename runInRedirFT :: (Functor m, MonadIO m, ChFinalizer m) => InRedirT m a -> FilePath -> m a -- | Run InRedir with a filename runInRedirF :: InRedir a -> FilePath -> IO a -- | Line-scanning alternative to mscan1/L mscanLn :: ChScanner m => m String -- | Scan a fixed number of chars mscanN :: ChScanner m => Int -> m String -- | Redirection source that does not provide any output data EmptyI EmptyI :: EmptyI -- | Class for all primitive redirection sources. class RedirectionSource t mt a r | t -> mt, t a -> r -- | Redirection (.<.) :: (RedirectionSource t mt a r, ChFinalizer m, Functor m, MonadIO m, ChScanner (mt m)) => mt m a -> t -> m r -- | Class for all Here-Documents class RedirectionHeredoc t mt a r | t -> mt, t a -> r -- | Redirection (.<<.) :: (RedirectionHeredoc t mt a r, Functor m, ChScanner (mt m)) => mt m a -> t -> m r instance Text.Chatty.Scanner.ChScanner GHC.Types.IO instance GHC.Base.Monad m => Text.Chatty.Scanner.ChScanner (Control.Monad.Trans.State.Lazy.StateT GHC.Base.String m) instance GHC.Base.Monad m => GHC.Base.Monad (Text.Chatty.Scanner.HereStringT m) instance Control.Monad.Trans.Class.MonadTrans Text.Chatty.Scanner.HereStringT instance GHC.Base.Monad m => GHC.Base.Functor (Text.Chatty.Scanner.HereStringT m) instance GHC.Base.Monad m => GHC.Base.Applicative (Text.Chatty.Scanner.HereStringT m) instance GHC.Base.Monad m => Text.Chatty.Scanner.ChScanner (Text.Chatty.Scanner.HereStringT m) instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Text.Chatty.Scanner.HereStringT m) instance Text.Chatty.Finalizer.ChFinalizer m => Text.Chatty.Finalizer.ChFinalizer (Text.Chatty.Scanner.HereStringT m) instance GHC.Base.Monad m => GHC.Base.Monad (Text.Chatty.Scanner.QuietT m) instance Control.Monad.Trans.Class.MonadTrans Text.Chatty.Scanner.QuietT instance GHC.Base.Monad m => Text.Chatty.Scanner.ChScanner (Text.Chatty.Scanner.QuietT m) instance GHC.Base.Functor m => GHC.Base.Functor (Text.Chatty.Scanner.QuietT m) instance (GHC.Base.Functor m, GHC.Base.Monad m) => GHC.Base.Applicative (Text.Chatty.Scanner.QuietT m) instance GHC.Base.Monad m => GHC.Base.Monad (Text.Chatty.Scanner.InRedirT m) instance Control.Monad.Trans.Class.MonadTrans Text.Chatty.Scanner.InRedirT instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Text.Chatty.Scanner.InRedirT m) instance Control.Monad.IO.Class.MonadIO m => Text.Chatty.Scanner.ChScanner (Text.Chatty.Scanner.InRedirT m) instance GHC.Base.Monad m => GHC.Base.Functor (Text.Chatty.Scanner.InRedirT m) instance GHC.Base.Monad m => GHC.Base.Applicative (Text.Chatty.Scanner.InRedirT m) instance Text.Chatty.Finalizer.ChFinalizer m => Text.Chatty.Finalizer.ChFinalizer (Text.Chatty.Scanner.InRedirT m) instance Text.Chatty.Scanner.RedirectionSource Text.Chatty.Scanner.EmptyI Text.Chatty.Scanner.QuietT a a instance Text.Chatty.Scanner.RedirectionSource GHC.IO.FilePath Text.Chatty.Scanner.InRedirT a a instance Text.Chatty.Scanner.RedirectionSource GHC.IO.Handle.Types.Handle Text.Chatty.Scanner.InRedirT a a instance Text.Chatty.Scanner.RedirectionHeredoc GHC.Base.String Text.Chatty.Scanner.HereStringT a a -- | Provides a typeclass for buffered scanners as well as a buffering -- monad transformer. module Text.Chatty.Scanner.Buffered -- | Typeclass for all buffered ChScanners. class ChScanner m => ChBufferedScanner m -- | Scan the next character without removing it. mpeek1 :: ChBufferedScanner m => m Char -- | Prepend the given character to the scannable input. mprepend :: ChBufferedScanner m => String -> m () -- | Typeclass for all BufferedScanners with support for pushing -- and popping. class ChBufferedScanner m => ChStackBufferedScanner m -- | Push the current input state to the stack. mpush :: ChStackBufferedScanner m => m () -- | Pop the previous input state from the stack. mpop :: ChStackBufferedScanner m => m () -- | A buffering MonadScanner transformer that lets you use -- mpeek1 and mprepend everywhere. newtype ScannerBufferT m a ScannerBuffer :: ([String] -> m (a, [String])) -> ScannerBufferT m a [runScannerBufferT] :: ScannerBufferT m a -> [String] -> m (a, [String]) instance GHC.Base.Monad m => Text.Chatty.Scanner.Buffered.ChBufferedScanner (Control.Monad.Trans.State.Lazy.StateT GHC.Base.String m) instance GHC.Base.Monad m => Text.Chatty.Scanner.Buffered.ChBufferedScanner (Text.Chatty.Scanner.HereStringT m) instance GHC.Base.Monad m => GHC.Base.Monad (Text.Chatty.Scanner.Buffered.ScannerBufferT m) instance Control.Monad.Trans.Class.MonadTrans Text.Chatty.Scanner.Buffered.ScannerBufferT instance GHC.Base.Monad m => GHC.Base.Functor (Text.Chatty.Scanner.Buffered.ScannerBufferT m) instance GHC.Base.Monad m => GHC.Base.Applicative (Text.Chatty.Scanner.Buffered.ScannerBufferT m) instance Text.Chatty.Scanner.ChScanner m => Text.Chatty.Scanner.ChScanner (Text.Chatty.Scanner.Buffered.ScannerBufferT m) instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Text.Chatty.Scanner.Buffered.ScannerBufferT m) instance Text.Chatty.Scanner.ChScanner m => Text.Chatty.Scanner.Buffered.ChBufferedScanner (Text.Chatty.Scanner.Buffered.ScannerBufferT m) instance Text.Chatty.Scanner.ChScanner m => Text.Chatty.Scanner.Buffered.ChStackBufferedScanner (Text.Chatty.Scanner.Buffered.ScannerBufferT m) -- | Provides a typeclass for all monads that may print text. module Text.Chatty.Printer -- | A typeclass for all monads that may output strings. class Monad m => ChPrinter m where mnoecho = mprint mflush = return () mnomask = mprint -- | Just print it! mprint :: ChPrinter m => String -> m () -- | Print it, except you are IO. mnoecho :: ChPrinter m => String -> m () -- | Flush the buffer. mflush :: ChPrinter m => m () -- | Alternative to mprint that does not mask any characters (depends on -- the carrier). mnomask :: ChPrinter m => String -> m () -- | DeafT discards all output (much like >/dev/null in the shell) newtype DeafT m a Deaf :: m a -> DeafT m a [runDeafT] :: DeafT m a -> m a -- | Redirects all output to a given handle (much like >filename in the -- shell) newtype OutRedirT m a OutRedir :: (Handle -> m a) -> OutRedirT m a [runOutRedirT] :: OutRedirT m a -> Handle -> m a -- | OutRedirT on a blank IO monad type OutRedir = OutRedirT IO -- | Run OutRedir with a Handle runOutRedir :: OutRedir a -> Handle -> IO a -- | Run OutRedirT with a FilePath runOutRedirFT :: (Functor m, MonadIO m) => OutRedirT m a -> FilePath -> IOMode -> m a -- | Run OutRedir with a FilePath runOutRedirF :: OutRedir a -> FilePath -> IOMode -> IO a -- | Catches all output (much like VAR=$(...) in the shell) newtype RecorderT m a Recorder :: m (a, [String]) -> RecorderT m a [runRecorderT'] :: RecorderT m a -> m (a, [String]) -- | RecorderT on the Identity type Recorder = RecorderT Identity -- | The recorder state. Use this together with replay, -- replayM or replay_. newtype Replayable Replayable :: [String] -> Replayable -- | Replay a recorder state in a pure context. replay :: Replayable -> String -- | Run Recorder and also return its state. runRecorder :: Recorder a -> (a, Replayable) -- | Run RecorderT and also return its state. runRecorderT :: (Functor m, Monad m) => RecorderT m a -> m (a, Replayable) -- | Line-terminating alternative to mprint mprintLn :: ChPrinter m => String -> m () -- | Line-terminating alternative to mnomask mnomaskLn :: ChPrinter m => String -> m () -- | Redirection target that discards input. data DiscardO DiscardO :: DiscardO -- | Redirection target that records input. data RecordO RecordO :: RecordO -- | Class for all redirection targets. class RedirectionTarget t mt a r | t -> mt, t a -> r where (.>>.) = (.>.) -- | Overwriting redirection. (.>.) :: (RedirectionTarget t mt a r, Functor m, MonadIO m, ChPrinter (mt m)) => mt m a -> t -> m r -- | Appending redirection. (.>>.) :: (RedirectionTarget t mt a r, Functor m, MonadIO m, ChPrinter (mt m)) => mt m a -> t -> m r instance Text.Chatty.Printer.ChPrinter GHC.Types.IO instance GHC.Base.Monad m => GHC.Base.Monad (Text.Chatty.Printer.DeafT m) instance Control.Monad.Trans.Class.MonadTrans Text.Chatty.Printer.DeafT instance (GHC.Base.Functor m, GHC.Base.Monad m) => GHC.Base.Applicative (Text.Chatty.Printer.DeafT m) instance GHC.Base.Functor m => GHC.Base.Functor (Text.Chatty.Printer.DeafT m) instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Text.Chatty.Printer.DeafT m) instance GHC.Base.Monad m => Text.Chatty.Printer.ChPrinter (Text.Chatty.Printer.DeafT m) instance GHC.Base.Monad m => GHC.Base.Monad (Text.Chatty.Printer.OutRedirT m) instance Control.Monad.Trans.Class.MonadTrans Text.Chatty.Printer.OutRedirT instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Text.Chatty.Printer.OutRedirT m) instance Control.Monad.IO.Class.MonadIO m => Text.Chatty.Printer.ChPrinter (Text.Chatty.Printer.OutRedirT m) instance GHC.Base.Monad m => GHC.Base.Functor (Text.Chatty.Printer.OutRedirT m) instance GHC.Base.Monad m => GHC.Base.Applicative (Text.Chatty.Printer.OutRedirT m) instance GHC.Base.Monad m => GHC.Base.Monad (Text.Chatty.Printer.RecorderT m) instance Control.Monad.Trans.Class.MonadTrans Text.Chatty.Printer.RecorderT instance GHC.Base.Monad m => Text.Chatty.Printer.ChPrinter (Text.Chatty.Printer.RecorderT m) instance GHC.Base.Monad m => GHC.Base.Functor (Text.Chatty.Printer.RecorderT m) instance GHC.Base.Monad m => GHC.Base.Applicative (Text.Chatty.Printer.RecorderT m) instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Text.Chatty.Printer.RecorderT m) instance GHC.Show.Show Text.Chatty.Printer.Replayable instance Text.Chatty.Printer.RedirectionTarget Text.Chatty.Printer.DiscardO Text.Chatty.Printer.DeafT a a instance Text.Chatty.Printer.RedirectionTarget Text.Chatty.Printer.RecordO Text.Chatty.Printer.RecorderT a (a, Text.Chatty.Printer.Replayable) instance Text.Chatty.Printer.RedirectionTarget GHC.IO.FilePath Text.Chatty.Printer.OutRedirT a a instance Text.Chatty.Printer.RedirectionTarget GHC.IO.Handle.Types.Handle Text.Chatty.Printer.OutRedirT a a -- | Provides a typeclass for process spawning. module System.Chatty.Spawn -- | Class for all (real or pseudo) process-spawning monads. class Monad m => ChSpawn m -- | Spawn process mspw :: ChSpawn m => String -> [String] -> Either Handle String -> m (Int, String, [Handle]) -- | Accept handle as input? mah :: ChSpawn m => String -> m Bool -- | Spawn process spawn :: (ChFinalizer m, ChScanner m, ChPrinter m, ChSpawn m, Functor m) => String -> [String] -> m Int instance System.Chatty.Spawn.ChSpawn GHC.Types.IO -- | Provides a MonadSpawn overlay that may catch specific spawn calls and -- handle them itself. module System.Chatty.Spawn.Overlay -- | MonadSpawn overlay. Carries a map of own command implementations that -- are called instead of the actual ones. newtype SpawnOverlayT m a SpawnOverlay :: ([(String, [String] -> String -> m (Int, String))] -> m (a, [(String, [String] -> String -> m (Int, String))])) -> SpawnOverlayT m a [runSpawnOverlayT] :: SpawnOverlayT m a -> [(String, [String] -> String -> m (Int, String))] -> m (a, [(String, [String] -> String -> m (Int, String))]) instance GHC.Base.Monad m => GHC.Base.Monad (System.Chatty.Spawn.Overlay.SpawnOverlayT m) instance Control.Monad.Trans.Class.MonadTrans System.Chatty.Spawn.Overlay.SpawnOverlayT instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (System.Chatty.Spawn.Overlay.SpawnOverlayT m) instance GHC.Base.Monad m => GHC.Base.Functor (System.Chatty.Spawn.Overlay.SpawnOverlayT m) instance GHC.Base.Monad m => GHC.Base.Applicative (System.Chatty.Spawn.Overlay.SpawnOverlayT m) instance System.Chatty.Spawn.ChSpawn m => System.Chatty.Spawn.ChSpawn (System.Chatty.Spawn.Overlay.SpawnOverlayT m) -- | Provides builtins for some common commands. module System.Chatty.Spawn.Builtins -- | Use builtins if possible. withBuiltins :: (Functor m, ChSpawn m) => SpawnOverlayT m a -> m a -- | Provides a printer class that offers several channels. module Text.Chatty.Channel.Printer -- | Typeclass for all printers that offer several channels. 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 -- | Run the function with the given channel. cbracket :: ChChannelPrinter c m => c -> m a -> m a -- | Switch to the given channel cstart :: ChChannelPrinter c m => c -> m () -- | Return to the previous channel. The argument is bogus (just for type -- inference). cfin :: ChChannelPrinter c m => c -> m () -- | Print the string to the given channel. cprint :: ChChannelPrinter c m => c -> String -> m () -- | Return the current channel. cthis :: ChChannelPrinter c m => m c -- | Catches all output on multiple channels. newtype ArchiverT c m a Archiver :: (([(c, [String])], [c]) -> m (a, ([(c, [String])], [c]))) -> ArchiverT c m a [runArchiverT'] :: ArchiverT c m a -> ([(c, [String])], [c]) -> m (a, ([(c, [String])], [c])) type IntArchiverT = ArchiverT Int type BoolArchiverT = ArchiverT Bool type HandleArchiverT = ArchiverT Handle runArchiverT :: (Eq c, Monad m) => c -> ArchiverT c m a -> m (a, [(c, Replayable)]) -- | Forwards output only on a specific channel. newtype FilterT c m a Filter :: ((c, [c]) -> m (a, [c])) -> FilterT c m a [runFilterT] :: FilterT c m a -> (c, [c]) -> m (a, [c]) type IntFilterT = FilterT Int type BoolFilterT = FilterT Bool type HandleFilterT = FilterT Handle -- | Joins all output regardless of its channel. newtype JoinerT m a Joiner :: m a -> JoinerT m a [runJoinerT] :: JoinerT m a -> m a instance GHC.Base.Monad m => GHC.Base.Monad (Text.Chatty.Channel.Printer.ArchiverT c m) instance Control.Monad.Trans.Class.MonadTrans (Text.Chatty.Channel.Printer.ArchiverT c) instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Text.Chatty.Channel.Printer.ArchiverT c m) instance GHC.Base.Monad m => GHC.Base.Functor (Text.Chatty.Channel.Printer.ArchiverT c m) instance GHC.Base.Monad m => GHC.Base.Applicative (Text.Chatty.Channel.Printer.ArchiverT c m) instance (GHC.Classes.Eq c, GHC.Base.Monad m) => Text.Chatty.Printer.ChPrinter (Text.Chatty.Channel.Printer.ArchiverT c m) instance (GHC.Classes.Eq c, GHC.Base.Monad m) => Text.Chatty.Channel.Printer.ChChannelPrinter c (Text.Chatty.Channel.Printer.ArchiverT c m) instance GHC.Base.Monad m => GHC.Base.Monad (Text.Chatty.Channel.Printer.FilterT c m) instance Control.Monad.Trans.Class.MonadTrans (Text.Chatty.Channel.Printer.FilterT c) instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Text.Chatty.Channel.Printer.FilterT c m) instance GHC.Base.Monad m => GHC.Base.Functor (Text.Chatty.Channel.Printer.FilterT c m) instance GHC.Base.Monad m => GHC.Base.Applicative (Text.Chatty.Channel.Printer.FilterT c m) instance (GHC.Classes.Eq c, Text.Chatty.Printer.ChPrinter m) => Text.Chatty.Printer.ChPrinter (Text.Chatty.Channel.Printer.FilterT c m) instance (GHC.Classes.Eq c, Text.Chatty.Printer.ChPrinter m) => Text.Chatty.Channel.Printer.ChChannelPrinter c (Text.Chatty.Channel.Printer.FilterT c m) instance GHC.Base.Monad m => GHC.Base.Monad (Text.Chatty.Channel.Printer.JoinerT m) instance Control.Monad.Trans.Class.MonadTrans Text.Chatty.Channel.Printer.JoinerT instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Text.Chatty.Channel.Printer.JoinerT m) instance GHC.Base.Functor m => GHC.Base.Functor (Text.Chatty.Channel.Printer.JoinerT m) instance (GHC.Base.Functor m, GHC.Base.Monad m) => GHC.Base.Applicative (Text.Chatty.Channel.Printer.JoinerT m) instance Text.Chatty.Printer.ChPrinter m => Text.Chatty.Printer.ChPrinter (Text.Chatty.Channel.Printer.JoinerT m) instance (GHC.Classes.Eq c, Text.Chatty.Printer.ChPrinter m) => Text.Chatty.Channel.Printer.ChChannelPrinter c (Text.Chatty.Channel.Printer.JoinerT m) module System.Chatty.Filesystem data FSExec a FSSucc :: a -> FSExec a NoPermission :: FSExec a NotFound :: FSExec a data File m File :: m (FSExec ()) -> m (FSExec ()) -> String -> String -> File m [loadFun] :: File m -> m (FSExec ()) [saveFun] :: File m -> m (FSExec ()) [leftBehind] :: File m -> String [rightPending] :: File m -> String newtype Path MultiPath :: [PathSpec] -> Path data PathSpec Path :: PathRoot -> [PathSeg] -> PathSpec data PathRoot Absolute :: PathRoot Relative :: PathRoot data PathSeg SelParent :: PathSeg SelChild :: String -> PathSeg type FileA m = Atom (File m) data Mountpoint m Mount :: [Mountpoint m] -> Atom a -> Path -> (Path -> (Atom a, Path) -> m (FSExec (FileA m))) -> Mountpoint m [subMounts] :: Mountpoint m -> [Mountpoint m] [mstate] :: Mountpoint m -> Atom a [mpath] :: Mountpoint m -> Path [mopen] :: Mountpoint m -> Path -> (Atom a, Path) -> m (FSExec (FileA m)) class Monad m => ChFilesystem m fopen :: ChFilesystem m => Path -> m (FSExec (FileA m)) fpwd :: ChFilesystem m => m Path fcd :: ChFilesystem m => Path -> m () class Monad m => CanLoad m n fload :: CanLoad m n => FileA n -> m (FSExec ()) class Monad m => CanSave m n fsave :: CanSave m n => FileA n -> m (FSExec ()) class Monad m => CanMount m n fmount :: CanMount m n => Mountpoint n -> m () data FilePrinterT m a FilePrinter :: (FileA m -> m a) -> FilePrinterT m a [runFilePrinterT] :: FilePrinterT m a -> FileA m -> m a data FileScannerT m a FileScanner :: (FileA m -> m a) -> FileScannerT m a [runFileScannerT] :: FileScannerT m a -> FileA m -> m a newtype NullFsT m a NullFs :: (Path -> [Mountpoint (NullFsT m)] -> m (a, Path, [Mountpoint (NullFsT m)])) -> NullFsT m a [runNullFsT] :: NullFsT m a -> Path -> [Mountpoint (NullFsT m)] -> m (a, Path, [Mountpoint (NullFsT m)]) absPath :: ChFilesystem m => Path -> m Path cmpPath' :: [PathSeg] -> [PathSeg] -> Maybe [PathSeg] cmpPath :: Path -> Path -> Path isPath :: Path -> Bool path :: String -> Path expandofs :: (ChAtoms m, ChFilesystem m) => m (Mountpoint m) printerfs :: (ChPrinter m, ChAtoms m, ChFilesystem m) => m (Mountpoint m) iomapfs :: (MonadIO m, ChAtoms m) => String -> m (Mountpoint m) mount :: (CanMount m m, ChAtoms m, ChFilesystem m) => m (Mountpoint m) -> Path -> m () withNullFs :: ChAtoms m => NullFsT m a -> m a withExpandoFs :: (ChAtoms m, ChAtoms (NullFsT m)) => NullFsT m a -> m a instance GHC.Show.Show System.Chatty.Filesystem.Path instance GHC.Classes.Ord System.Chatty.Filesystem.Path instance GHC.Classes.Eq System.Chatty.Filesystem.Path instance GHC.Show.Show System.Chatty.Filesystem.PathSpec instance GHC.Classes.Ord System.Chatty.Filesystem.PathSpec instance GHC.Classes.Eq System.Chatty.Filesystem.PathSpec instance GHC.Show.Show System.Chatty.Filesystem.PathSeg instance GHC.Classes.Ord System.Chatty.Filesystem.PathSeg instance GHC.Classes.Eq System.Chatty.Filesystem.PathSeg instance GHC.Show.Show System.Chatty.Filesystem.PathRoot instance GHC.Classes.Ord System.Chatty.Filesystem.PathRoot instance GHC.Classes.Eq System.Chatty.Filesystem.PathRoot instance GHC.Base.Monad m => GHC.Base.Monad (System.Chatty.Filesystem.FilePrinterT m) instance GHC.Base.Monad m => GHC.Base.Monad (System.Chatty.Filesystem.FileScannerT m) instance GHC.Base.Functor f => GHC.Base.Functor (System.Chatty.Filesystem.FilePrinterT f) instance (GHC.Base.Functor m, GHC.Base.Monad m) => GHC.Base.Applicative (System.Chatty.Filesystem.FilePrinterT m) instance GHC.Base.Functor f => GHC.Base.Functor (System.Chatty.Filesystem.FileScannerT f) instance (GHC.Base.Functor m, GHC.Base.Monad m) => GHC.Base.Applicative (System.Chatty.Filesystem.FileScannerT m) instance Control.Monad.Trans.Class.MonadTrans System.Chatty.Filesystem.FilePrinterT instance Control.Monad.Trans.Class.MonadTrans System.Chatty.Filesystem.FileScannerT instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (System.Chatty.Filesystem.FilePrinterT m) instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (System.Chatty.Filesystem.FileScannerT m) instance Data.Chatty.Atoms.ChAtoms m => Text.Chatty.Printer.ChPrinter (System.Chatty.Filesystem.FilePrinterT m) instance Data.Chatty.Atoms.ChAtoms m => Text.Chatty.Scanner.ChScanner (System.Chatty.Filesystem.FileScannerT m) instance GHC.Base.Monad m => GHC.Base.Monad (System.Chatty.Filesystem.NullFsT m) instance GHC.Base.Functor f => GHC.Base.Functor (System.Chatty.Filesystem.NullFsT f) instance (GHC.Base.Functor m, GHC.Base.Monad m) => GHC.Base.Applicative (System.Chatty.Filesystem.NullFsT m) instance Control.Monad.Trans.Class.MonadTrans System.Chatty.Filesystem.NullFsT instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (System.Chatty.Filesystem.NullFsT m) instance GHC.Base.Monad m => System.Chatty.Filesystem.ChFilesystem (System.Chatty.Filesystem.NullFsT m) instance GHC.Base.Monad m => System.Chatty.Filesystem.CanMount (System.Chatty.Filesystem.NullFsT m) (System.Chatty.Filesystem.NullFsT m) -- | Provides a printer class that may broadcast to all channels that -- fulfill a condition. module Text.Chatty.Channel.Broadcast -- | Typeclass for all channel printers that may broadcast to all channels -- that fulfill a condition. class ChChannelPrinter c m => ChBroadcaster c m -- | Print the string to all channels that fulfill the current condition. bprint :: ChBroadcaster c m => (c -> m Bool) -> String -> m () -- | Typeclass for all broadcaster that may embrace sections class ChBroadcaster c m => ChBroadcasterBracket c m where bbracket f m = bstart f >> m >>= \ a -> bfin f >> return a -- | Run the function and print to all channels that fulfill the given -- condition. bbracket :: ChBroadcasterBracket c m => (c -> m Bool) -> m a -> m a -- | From now on use the given condition to determine the channels to print -- to. bstart :: ChBroadcasterBracket c m => (c -> m Bool) -> m () -- | Return to the previous condition. The argument is bogus (just for type -- inference). bfin :: ChBroadcasterBracket c m => (c -> m Bool) -> m () -- | Provides an extended printer class that supports colours. module Text.Chatty.Extended.Printer -- | Typeclass for all printers that support colourized output. 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 "" -- | Run the function with the given colour. ebracket :: ChExtendedPrinter m => Colour -> m a -> m a -- | Print the string in the given colour. eprint :: ChExtendedPrinter m => Colour -> String -> m () -- | Print the string in the given colour and terminate the line. eprintLn :: ChExtendedPrinter m => Colour -> String -> m () -- | Print the string in the given colour without masking. enomask :: ChExtendedPrinter m => Colour -> String -> m () -- | Print the string in the given colour without masking and terminate the -- line. enomaskLn :: ChExtendedPrinter m => Colour -> String -> m () -- | Start using the specified colour. estart :: ChExtendedPrinter m => Colour -> m () -- | Reset colour. efin :: ChExtendedPrinter m => m () -- | Colour tone. data Tone Green :: Tone Red :: Tone Yellow :: Tone Blue :: Tone Black :: Tone White :: Tone Cyan :: Tone Magenta :: Tone -- | Colour brightness data Colour Dull :: Tone -> Colour Vivid :: Tone -> Colour expandClr :: ChExtendedPrinter m => String -> m () -- | Provides generic string expansion module Text.Chatty.Expansion -- | Typeclass for all string-expanding monads. class Monad e => ChExpand e -- | Expand the given string. expand :: ChExpand e => String -> e String newtype NullExpanderT m a NullExpander :: m a -> NullExpanderT m a [runNullExpanderT] :: NullExpanderT m a -> m a withExpansion :: Monad m => NullExpanderT m a -> m a instance GHC.Base.Monad m => GHC.Base.Monad (Text.Chatty.Expansion.NullExpanderT m) instance Control.Monad.Trans.Class.MonadTrans Text.Chatty.Expansion.NullExpanderT instance GHC.Base.Functor m => GHC.Base.Functor (Text.Chatty.Expansion.NullExpanderT m) instance (GHC.Base.Functor m, GHC.Base.Monad m) => GHC.Base.Applicative (Text.Chatty.Expansion.NullExpanderT m) instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Text.Chatty.Expansion.NullExpanderT m) instance GHC.Base.Monad m => Text.Chatty.Expansion.ChExpand (Text.Chatty.Expansion.NullExpanderT m) module Text.Chatty.Expansion.Vars -- | Some environment variable data EnvVar -- | Not set. NotSet :: EnvVar -- | An embeddable string. Literal :: String -> EnvVar -- | Something we can show. Scalar :: a -> EnvVar -- | Array of that Array :: [EnvVar] -> EnvVar -- | Environment storage and variable expander. newtype ExpanderT m a Expander :: ([(String, EnvVar)] -> m (a, [(String, EnvVar)])) -> ExpanderT m a [runExpanderT] :: ExpanderT m a -> [(String, EnvVar)] -> m (a, [(String, EnvVar)]) -- | Run this function inside a blank environment. localEnvironment :: Functor m => ExpanderT m a -> m a -- | Run this function in a locally modifiable, but not exported -- environment forkEnvironment :: (Functor m, Monad m, MonadIO m) => ExpanderT m a -> m a -- | Export this local environment. exportAll :: (Monad m, MonadIO m) => ExpanderT m () -- | Expand $variables expandVars :: (Monad m, Functor m, ChExpanderEnv m) => String -> m String -- | Is alphanumeric? isAnum :: Char -> Bool -- | Typeclass for all environment storages. class Monad ee => ChExpanderEnv ee -- | Get environment variable mgetv :: ChExpanderEnv ee => String -> ee EnvVar -- | Put environment variable mputv :: ChExpanderEnv ee => String -> EnvVar -> ee () instance GHC.Show.Show Text.Chatty.Expansion.Vars.EnvVar instance GHC.Base.Monad m => GHC.Base.Monad (Text.Chatty.Expansion.Vars.ExpanderT m) instance Control.Monad.Trans.Class.MonadTrans Text.Chatty.Expansion.Vars.ExpanderT instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Text.Chatty.Expansion.Vars.ExpanderT m) instance GHC.Base.Monad m => GHC.Base.Functor (Text.Chatty.Expansion.Vars.ExpanderT m) instance GHC.Base.Monad m => GHC.Base.Applicative (Text.Chatty.Expansion.Vars.ExpanderT m) instance Text.Chatty.Expansion.ChExpand GHC.Types.IO instance Text.Chatty.Expansion.ChExpand m => Text.Chatty.Expansion.ChExpand (Text.Chatty.Expansion.Vars.ExpanderT m) instance GHC.Base.Monad m => Text.Chatty.Expansion.Vars.ChExpanderEnv (Text.Chatty.Expansion.Vars.ExpanderT m) instance Text.Chatty.Expansion.Vars.ChExpanderEnv GHC.Types.IO module Text.Chatty.Expansion.History newtype HistoryT m a History :: ([String] -> m (a, [String])) -> HistoryT m a [runHistoryT] :: HistoryT m a -> [String] -> m (a, [String]) class Monad he => ChHistoryEnv he mcounth :: ChHistoryEnv he => he Int mgeth :: ChHistoryEnv he => Int -> he String mputh :: ChHistoryEnv he => String -> he () expandHist :: ChHistoryEnv h => String -> h String withHistory :: Monad m => HistoryT m a -> m a instance GHC.Base.Monad m => GHC.Base.Monad (Text.Chatty.Expansion.History.HistoryT m) instance Control.Monad.Trans.Class.MonadTrans Text.Chatty.Expansion.History.HistoryT instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Text.Chatty.Expansion.History.HistoryT m) instance GHC.Base.Monad m => GHC.Base.Functor (Text.Chatty.Expansion.History.HistoryT m) instance GHC.Base.Monad m => GHC.Base.Applicative (Text.Chatty.Expansion.History.HistoryT m) instance GHC.Base.Monad m => Text.Chatty.Expansion.History.ChHistoryEnv (Text.Chatty.Expansion.History.HistoryT m) instance Text.Chatty.Expansion.ChExpand m => Text.Chatty.Expansion.ChExpand (Text.Chatty.Expansion.History.HistoryT m) -- | Provides an ChExtendedPrinter that handles colours using HTML -- output. module Text.Chatty.Extended.HTML -- | An ChExtendedPrinter for HTML output. newtype HtmlPrinterT m a HtmlPrinter :: m a -> HtmlPrinterT m a [runHtmlPrinterT] :: HtmlPrinterT m a -> m a -- | Convert the given character to its HTML representation. maskHtml :: Char -> String -- | Convert the given colour to its CSS representation. hexColour :: Colour -> [Char] instance GHC.Base.Monad m => GHC.Base.Monad (Text.Chatty.Extended.HTML.HtmlPrinterT m) instance Control.Monad.Trans.Class.MonadTrans Text.Chatty.Extended.HTML.HtmlPrinterT instance GHC.Base.Functor m => GHC.Base.Functor (Text.Chatty.Extended.HTML.HtmlPrinterT m) instance (GHC.Base.Functor m, GHC.Base.Monad m) => GHC.Base.Applicative (Text.Chatty.Extended.HTML.HtmlPrinterT m) instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Text.Chatty.Extended.HTML.HtmlPrinterT m) instance Text.Chatty.Printer.ChPrinter m => Text.Chatty.Printer.ChPrinter (Text.Chatty.Extended.HTML.HtmlPrinterT m) instance Text.Chatty.Printer.ChPrinter m => Text.Chatty.Extended.Printer.ChExtendedPrinter (Text.Chatty.Extended.HTML.HtmlPrinterT m) instance (GHC.Base.Functor m, Text.Chatty.Expansion.ChExpand m) => Text.Chatty.Expansion.ChExpand (Text.Chatty.Extended.HTML.HtmlPrinterT m) -- | Provides a ChExtendedPrinter that handles colours using -- standardized ANSI codes. module Text.Chatty.Extended.ANSI -- | A ChExtendedPrinter that uses ANSI colour codes. newtype AnsiPrinterT m a AnsiPrinter :: ([Colour] -> m (a, [Colour])) -> AnsiPrinterT m a [runAnsiPrinterT] :: AnsiPrinterT m a -> [Colour] -> m (a, [Colour]) -- | Convert Chatty's colour intensity to ansi-terminal's one mkColourInt :: Colour -> ColorIntensity -- | Convert Chatty's colour tone to ansi-terminal's one mkColourCode :: Colour -> Color instance GHC.Base.Monad m => GHC.Base.Monad (Text.Chatty.Extended.ANSI.AnsiPrinterT m) instance Control.Monad.Trans.Class.MonadTrans Text.Chatty.Extended.ANSI.AnsiPrinterT instance GHC.Base.Monad m => GHC.Base.Functor (Text.Chatty.Extended.ANSI.AnsiPrinterT m) instance GHC.Base.Monad m => GHC.Base.Applicative (Text.Chatty.Extended.ANSI.AnsiPrinterT m) instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Text.Chatty.Extended.ANSI.AnsiPrinterT m) instance Text.Chatty.Printer.ChPrinter m => Text.Chatty.Printer.ChPrinter (Text.Chatty.Extended.ANSI.AnsiPrinterT m) instance Text.Chatty.Printer.ChPrinter m => Text.Chatty.Extended.Printer.ChExtendedPrinter (Text.Chatty.Extended.ANSI.AnsiPrinterT m) instance (GHC.Base.Functor m, Text.Chatty.Expansion.ChExpand m) => Text.Chatty.Expansion.ChExpand (Text.Chatty.Extended.ANSI.AnsiPrinterT m) -- | Declares serveral templates for comfortable instance derivation module Text.Chatty.Interactor.Templates -- | Automatically derives a ChScanner instance for you. mkScanner :: Name -> Q [Dec] -- | Automatically derives a ChPrinter instance for you. mkPrinter :: Name -> Q [Dec] -- | Automatically derives a ChFinalizer instance for you. mkFinalizer :: Name -> Q [Dec] -- | Automatically derives a ChExpand instance for you. mkExpander :: Name -> Q [Dec] -- | Automatically derives an ChExpanderEnv instance for you mkExpanderEnv :: Name -> Q [Dec] -- | Automatically derives a ChHistoryEnv instance for you mkHistoryEnv :: Name -> Q [Dec] -- | mkInteractor takes a type name and a list of typeclass derivers and -- applies them all. mkInteractor :: InteractorMaker i => Name -> i -- | Automatically derives a ChSpawn instance for you. mkSpawn :: Name -> Q [Dec] -- | Automatically derives a ChRandom instance for you. mkRandom :: Name -> Q [Dec] -- | Automatically derives a ChClock instance for you. mkClock :: Name -> Q [Dec] -- | Automatically derives all chatty typeclasses for you. mkChatty :: Name -> Q [Dec] -- | Automatically derives a ChChannelPrinter instance for you. mkChannelPrinter :: Name -> Name -> Q [Dec] -- | Automatically derives ChChannelPrinter instances for Int, -- Bool and Handle channels. mkDefCP :: Name -> Q [Dec] -- | Automatically derives all chatty typeclasses that are sensible for an -- ArchiverT. mkArchiver :: Name -> Q [Dec] -- | Automatically derives an ChExtendedPrinter instance for you. mkExtendedPrinter :: Name -> Q [Dec] -- | Automatically derives a ChBufferedScanner instance for you. mkBufferedScanner :: Name -> Q [Dec] -- | Automatically derives a ChCounter instance for you. mkCounter :: Name -> Q [Dec] -- | Automatically derives a ChAtoms instance for you. mkAtoms :: Name -> Q [Dec] -- | Automatically derives instances for ChFilesystem, CanLoad, CanSave, -- CanMount. mkFilesys :: Name -> Q [Dec] instance Text.Chatty.Interactor.Templates.InteractorMaker (Language.Haskell.TH.Syntax.Q [Language.Haskell.TH.Syntax.Dec]) instance Text.Chatty.Interactor.Templates.InteractorMaker i => Text.Chatty.Interactor.Templates.InteractorMaker ((Language.Haskell.TH.Syntax.Name -> Language.Haskell.TH.Syntax.Q [Language.Haskell.TH.Syntax.Dec]) -> i) -- | Provides a bunch of derived instances for the various typeclasses. module Text.Chatty.Interactor -- | IgnorantT ignores all output and does not provide any input. type IgnorantT m = QuietT (DeafT m) -- | Ignorant is IgnorantT on the identity type Ignorant = IgnorantT Identity -- | ChattyT simulates a console, actually taking input as a string and -- recording output. type ChattyT m = HereStringT (RecorderT m) -- | Chatty is ChattyT on the identity type Chatty = ChattyT Identity -- | Run IgnorantT (does not take anything) runIgnorantT :: Monad m => IgnorantT m a -> m a -- | Run Ignorant (does not take anything) runIgnorant :: Ignorant a -> a -- | Run ChattyT. Takes input as a string and returns (result, remaining -- input, output). runChattyT :: (Monad m, Functor m) => ChattyT m a -> String -> m (a, String, Replayable) -- | Run Chatty. Takes input as a string and returns (result, remaining -- input, output). runChatty :: Chatty a -> String -> (a, String, Replayable) -- | Connect the output of some function to the input of another one. -- Compare with a pipe (cmd1 | cmd2). (.|.) :: (Monad m, Functor m) => RecorderT m a -> HereStringT m b -> m b -- | Runs the second function and feeds its output as an argument to the -- first one. Compare with process expansion ($(cmd)). (.<$.) :: (Functor m, Monad m) => (String -> m b) -> RecorderT m a -> m b instance Text.Chatty.Scanner.ChScanner m0 => Text.Chatty.Scanner.ChScanner (Text.Chatty.Channel.Printer.JoinerT m0) instance Text.Chatty.Expansion.ChExpand m0 => Text.Chatty.Expansion.ChExpand (Text.Chatty.Channel.Printer.JoinerT m0) instance Text.Chatty.Expansion.Vars.ChExpanderEnv m0 => Text.Chatty.Expansion.Vars.ChExpanderEnv (Text.Chatty.Channel.Printer.JoinerT m0) instance Text.Chatty.Expansion.History.ChHistoryEnv m0 => Text.Chatty.Expansion.History.ChHistoryEnv (Text.Chatty.Channel.Printer.JoinerT m0) instance Text.Chatty.Finalizer.ChFinalizer m0 => Text.Chatty.Finalizer.ChFinalizer (Text.Chatty.Channel.Printer.JoinerT m0) instance System.Chatty.Spawn.ChSpawn m0 => System.Chatty.Spawn.ChSpawn (Text.Chatty.Channel.Printer.JoinerT m0) instance System.Chatty.Misc.ChRandom m0 => System.Chatty.Misc.ChRandom (Text.Chatty.Channel.Printer.JoinerT m0) instance System.Chatty.Misc.ChClock m0 => System.Chatty.Misc.ChClock (Text.Chatty.Channel.Printer.JoinerT m0) instance Data.Chatty.Counter.ChCounter m0 => Data.Chatty.Counter.ChCounter (Text.Chatty.Channel.Printer.JoinerT m0) instance Data.Chatty.Atoms.ChAtoms m0 => Data.Chatty.Atoms.ChAtoms (Text.Chatty.Channel.Printer.JoinerT m0) instance (Data.Chatty.Atoms.ChAtoms (Text.Chatty.Channel.Printer.JoinerT m0), System.Chatty.Filesystem.ChFilesystem m0) => System.Chatty.Filesystem.ChFilesystem (Text.Chatty.Channel.Printer.JoinerT m0) instance System.Chatty.Filesystem.CanLoad m0 n0 => System.Chatty.Filesystem.CanLoad (Text.Chatty.Channel.Printer.JoinerT m0) n0 instance System.Chatty.Filesystem.CanSave m0 n0 => System.Chatty.Filesystem.CanSave (Text.Chatty.Channel.Printer.JoinerT m0) n0 instance System.Chatty.Filesystem.CanMount m0 n0 => System.Chatty.Filesystem.CanMount (Text.Chatty.Channel.Printer.JoinerT m0) n0 instance Text.Chatty.Scanner.ChScanner m0 => Text.Chatty.Scanner.ChScanner (Text.Chatty.Channel.Printer.HandleFilterT m0) instance Text.Chatty.Expansion.ChExpand m0 => Text.Chatty.Expansion.ChExpand (Text.Chatty.Channel.Printer.HandleFilterT m0) instance Text.Chatty.Expansion.Vars.ChExpanderEnv m0 => Text.Chatty.Expansion.Vars.ChExpanderEnv (Text.Chatty.Channel.Printer.HandleFilterT m0) instance Text.Chatty.Expansion.History.ChHistoryEnv m0 => Text.Chatty.Expansion.History.ChHistoryEnv (Text.Chatty.Channel.Printer.HandleFilterT m0) instance Text.Chatty.Finalizer.ChFinalizer m0 => Text.Chatty.Finalizer.ChFinalizer (Text.Chatty.Channel.Printer.HandleFilterT m0) instance System.Chatty.Spawn.ChSpawn m0 => System.Chatty.Spawn.ChSpawn (Text.Chatty.Channel.Printer.HandleFilterT m0) instance System.Chatty.Misc.ChRandom m0 => System.Chatty.Misc.ChRandom (Text.Chatty.Channel.Printer.HandleFilterT m0) instance System.Chatty.Misc.ChClock m0 => System.Chatty.Misc.ChClock (Text.Chatty.Channel.Printer.HandleFilterT m0) instance Data.Chatty.Counter.ChCounter m0 => Data.Chatty.Counter.ChCounter (Text.Chatty.Channel.Printer.HandleFilterT m0) instance Data.Chatty.Atoms.ChAtoms m0 => Data.Chatty.Atoms.ChAtoms (Text.Chatty.Channel.Printer.HandleFilterT m0) instance (Data.Chatty.Atoms.ChAtoms (Text.Chatty.Channel.Printer.HandleFilterT m0), System.Chatty.Filesystem.ChFilesystem m0) => System.Chatty.Filesystem.ChFilesystem (Text.Chatty.Channel.Printer.HandleFilterT m0) instance System.Chatty.Filesystem.CanLoad m0 n0 => System.Chatty.Filesystem.CanLoad (Text.Chatty.Channel.Printer.HandleFilterT m0) n0 instance System.Chatty.Filesystem.CanSave m0 n0 => System.Chatty.Filesystem.CanSave (Text.Chatty.Channel.Printer.HandleFilterT m0) n0 instance System.Chatty.Filesystem.CanMount m0 n0 => System.Chatty.Filesystem.CanMount (Text.Chatty.Channel.Printer.HandleFilterT m0) n0 instance Text.Chatty.Scanner.ChScanner m0 => Text.Chatty.Scanner.ChScanner (Text.Chatty.Channel.Printer.BoolFilterT m0) instance Text.Chatty.Expansion.ChExpand m0 => Text.Chatty.Expansion.ChExpand (Text.Chatty.Channel.Printer.BoolFilterT m0) instance Text.Chatty.Expansion.Vars.ChExpanderEnv m0 => Text.Chatty.Expansion.Vars.ChExpanderEnv (Text.Chatty.Channel.Printer.BoolFilterT m0) instance Text.Chatty.Expansion.History.ChHistoryEnv m0 => Text.Chatty.Expansion.History.ChHistoryEnv (Text.Chatty.Channel.Printer.BoolFilterT m0) instance Text.Chatty.Finalizer.ChFinalizer m0 => Text.Chatty.Finalizer.ChFinalizer (Text.Chatty.Channel.Printer.BoolFilterT m0) instance System.Chatty.Spawn.ChSpawn m0 => System.Chatty.Spawn.ChSpawn (Text.Chatty.Channel.Printer.BoolFilterT m0) instance System.Chatty.Misc.ChRandom m0 => System.Chatty.Misc.ChRandom (Text.Chatty.Channel.Printer.BoolFilterT m0) instance System.Chatty.Misc.ChClock m0 => System.Chatty.Misc.ChClock (Text.Chatty.Channel.Printer.BoolFilterT m0) instance Data.Chatty.Counter.ChCounter m0 => Data.Chatty.Counter.ChCounter (Text.Chatty.Channel.Printer.BoolFilterT m0) instance Data.Chatty.Atoms.ChAtoms m0 => Data.Chatty.Atoms.ChAtoms (Text.Chatty.Channel.Printer.BoolFilterT m0) instance (Data.Chatty.Atoms.ChAtoms (Text.Chatty.Channel.Printer.BoolFilterT m0), System.Chatty.Filesystem.ChFilesystem m0) => System.Chatty.Filesystem.ChFilesystem (Text.Chatty.Channel.Printer.BoolFilterT m0) instance System.Chatty.Filesystem.CanLoad m0 n0 => System.Chatty.Filesystem.CanLoad (Text.Chatty.Channel.Printer.BoolFilterT m0) n0 instance System.Chatty.Filesystem.CanSave m0 n0 => System.Chatty.Filesystem.CanSave (Text.Chatty.Channel.Printer.BoolFilterT m0) n0 instance System.Chatty.Filesystem.CanMount m0 n0 => System.Chatty.Filesystem.CanMount (Text.Chatty.Channel.Printer.BoolFilterT m0) n0 instance Text.Chatty.Scanner.ChScanner m0 => Text.Chatty.Scanner.ChScanner (Text.Chatty.Channel.Printer.IntFilterT m0) instance Text.Chatty.Expansion.ChExpand m0 => Text.Chatty.Expansion.ChExpand (Text.Chatty.Channel.Printer.IntFilterT m0) instance Text.Chatty.Expansion.Vars.ChExpanderEnv m0 => Text.Chatty.Expansion.Vars.ChExpanderEnv (Text.Chatty.Channel.Printer.IntFilterT m0) instance Text.Chatty.Expansion.History.ChHistoryEnv m0 => Text.Chatty.Expansion.History.ChHistoryEnv (Text.Chatty.Channel.Printer.IntFilterT m0) instance Text.Chatty.Finalizer.ChFinalizer m0 => Text.Chatty.Finalizer.ChFinalizer (Text.Chatty.Channel.Printer.IntFilterT m0) instance System.Chatty.Spawn.ChSpawn m0 => System.Chatty.Spawn.ChSpawn (Text.Chatty.Channel.Printer.IntFilterT m0) instance System.Chatty.Misc.ChRandom m0 => System.Chatty.Misc.ChRandom (Text.Chatty.Channel.Printer.IntFilterT m0) instance System.Chatty.Misc.ChClock m0 => System.Chatty.Misc.ChClock (Text.Chatty.Channel.Printer.IntFilterT m0) instance Data.Chatty.Counter.ChCounter m0 => Data.Chatty.Counter.ChCounter (Text.Chatty.Channel.Printer.IntFilterT m0) instance Data.Chatty.Atoms.ChAtoms m0 => Data.Chatty.Atoms.ChAtoms (Text.Chatty.Channel.Printer.IntFilterT m0) instance (Data.Chatty.Atoms.ChAtoms (Text.Chatty.Channel.Printer.IntFilterT m0), System.Chatty.Filesystem.ChFilesystem m0) => System.Chatty.Filesystem.ChFilesystem (Text.Chatty.Channel.Printer.IntFilterT m0) instance System.Chatty.Filesystem.CanLoad m0 n0 => System.Chatty.Filesystem.CanLoad (Text.Chatty.Channel.Printer.IntFilterT m0) n0 instance System.Chatty.Filesystem.CanSave m0 n0 => System.Chatty.Filesystem.CanSave (Text.Chatty.Channel.Printer.IntFilterT m0) n0 instance System.Chatty.Filesystem.CanMount m0 n0 => System.Chatty.Filesystem.CanMount (Text.Chatty.Channel.Printer.IntFilterT m0) n0 instance Text.Chatty.Scanner.ChScanner m0 => Text.Chatty.Scanner.ChScanner (Text.Chatty.Channel.Printer.HandleArchiverT m0) instance Text.Chatty.Expansion.ChExpand m0 => Text.Chatty.Expansion.ChExpand (Text.Chatty.Channel.Printer.HandleArchiverT m0) instance Text.Chatty.Expansion.Vars.ChExpanderEnv m0 => Text.Chatty.Expansion.Vars.ChExpanderEnv (Text.Chatty.Channel.Printer.HandleArchiverT m0) instance Text.Chatty.Expansion.History.ChHistoryEnv m0 => Text.Chatty.Expansion.History.ChHistoryEnv (Text.Chatty.Channel.Printer.HandleArchiverT m0) instance Text.Chatty.Finalizer.ChFinalizer m0 => Text.Chatty.Finalizer.ChFinalizer (Text.Chatty.Channel.Printer.HandleArchiverT m0) instance System.Chatty.Spawn.ChSpawn m0 => System.Chatty.Spawn.ChSpawn (Text.Chatty.Channel.Printer.HandleArchiverT m0) instance System.Chatty.Misc.ChRandom m0 => System.Chatty.Misc.ChRandom (Text.Chatty.Channel.Printer.HandleArchiverT m0) instance System.Chatty.Misc.ChClock m0 => System.Chatty.Misc.ChClock (Text.Chatty.Channel.Printer.HandleArchiverT m0) instance Data.Chatty.Counter.ChCounter m0 => Data.Chatty.Counter.ChCounter (Text.Chatty.Channel.Printer.HandleArchiverT m0) instance Data.Chatty.Atoms.ChAtoms m0 => Data.Chatty.Atoms.ChAtoms (Text.Chatty.Channel.Printer.HandleArchiverT m0) instance (Data.Chatty.Atoms.ChAtoms (Text.Chatty.Channel.Printer.HandleArchiverT m0), System.Chatty.Filesystem.ChFilesystem m0) => System.Chatty.Filesystem.ChFilesystem (Text.Chatty.Channel.Printer.HandleArchiverT m0) instance System.Chatty.Filesystem.CanLoad m0 n0 => System.Chatty.Filesystem.CanLoad (Text.Chatty.Channel.Printer.HandleArchiverT m0) n0 instance System.Chatty.Filesystem.CanSave m0 n0 => System.Chatty.Filesystem.CanSave (Text.Chatty.Channel.Printer.HandleArchiverT m0) n0 instance System.Chatty.Filesystem.CanMount m0 n0 => System.Chatty.Filesystem.CanMount (Text.Chatty.Channel.Printer.HandleArchiverT m0) n0 instance Text.Chatty.Scanner.ChScanner m0 => Text.Chatty.Scanner.ChScanner (Text.Chatty.Channel.Printer.BoolArchiverT m0) instance Text.Chatty.Expansion.ChExpand m0 => Text.Chatty.Expansion.ChExpand (Text.Chatty.Channel.Printer.BoolArchiverT m0) instance Text.Chatty.Expansion.Vars.ChExpanderEnv m0 => Text.Chatty.Expansion.Vars.ChExpanderEnv (Text.Chatty.Channel.Printer.BoolArchiverT m0) instance Text.Chatty.Expansion.History.ChHistoryEnv m0 => Text.Chatty.Expansion.History.ChHistoryEnv (Text.Chatty.Channel.Printer.BoolArchiverT m0) instance Text.Chatty.Finalizer.ChFinalizer m0 => Text.Chatty.Finalizer.ChFinalizer (Text.Chatty.Channel.Printer.BoolArchiverT m0) instance System.Chatty.Spawn.ChSpawn m0 => System.Chatty.Spawn.ChSpawn (Text.Chatty.Channel.Printer.BoolArchiverT m0) instance System.Chatty.Misc.ChRandom m0 => System.Chatty.Misc.ChRandom (Text.Chatty.Channel.Printer.BoolArchiverT m0) instance System.Chatty.Misc.ChClock m0 => System.Chatty.Misc.ChClock (Text.Chatty.Channel.Printer.BoolArchiverT m0) instance Data.Chatty.Counter.ChCounter m0 => Data.Chatty.Counter.ChCounter (Text.Chatty.Channel.Printer.BoolArchiverT m0) instance Data.Chatty.Atoms.ChAtoms m0 => Data.Chatty.Atoms.ChAtoms (Text.Chatty.Channel.Printer.BoolArchiverT m0) instance (Data.Chatty.Atoms.ChAtoms (Text.Chatty.Channel.Printer.BoolArchiverT m0), System.Chatty.Filesystem.ChFilesystem m0) => System.Chatty.Filesystem.ChFilesystem (Text.Chatty.Channel.Printer.BoolArchiverT m0) instance System.Chatty.Filesystem.CanLoad m0 n0 => System.Chatty.Filesystem.CanLoad (Text.Chatty.Channel.Printer.BoolArchiverT m0) n0 instance System.Chatty.Filesystem.CanSave m0 n0 => System.Chatty.Filesystem.CanSave (Text.Chatty.Channel.Printer.BoolArchiverT m0) n0 instance System.Chatty.Filesystem.CanMount m0 n0 => System.Chatty.Filesystem.CanMount (Text.Chatty.Channel.Printer.BoolArchiverT m0) n0 instance Text.Chatty.Scanner.ChScanner m0 => Text.Chatty.Scanner.ChScanner (Text.Chatty.Channel.Printer.IntArchiverT m0) instance Text.Chatty.Expansion.ChExpand m0 => Text.Chatty.Expansion.ChExpand (Text.Chatty.Channel.Printer.IntArchiverT m0) instance Text.Chatty.Expansion.Vars.ChExpanderEnv m0 => Text.Chatty.Expansion.Vars.ChExpanderEnv (Text.Chatty.Channel.Printer.IntArchiverT m0) instance Text.Chatty.Expansion.History.ChHistoryEnv m0 => Text.Chatty.Expansion.History.ChHistoryEnv (Text.Chatty.Channel.Printer.IntArchiverT m0) instance Text.Chatty.Finalizer.ChFinalizer m0 => Text.Chatty.Finalizer.ChFinalizer (Text.Chatty.Channel.Printer.IntArchiverT m0) instance System.Chatty.Spawn.ChSpawn m0 => System.Chatty.Spawn.ChSpawn (Text.Chatty.Channel.Printer.IntArchiverT m0) instance System.Chatty.Misc.ChRandom m0 => System.Chatty.Misc.ChRandom (Text.Chatty.Channel.Printer.IntArchiverT m0) instance System.Chatty.Misc.ChClock m0 => System.Chatty.Misc.ChClock (Text.Chatty.Channel.Printer.IntArchiverT m0) instance Data.Chatty.Counter.ChCounter m0 => Data.Chatty.Counter.ChCounter (Text.Chatty.Channel.Printer.IntArchiverT m0) instance Data.Chatty.Atoms.ChAtoms m0 => Data.Chatty.Atoms.ChAtoms (Text.Chatty.Channel.Printer.IntArchiverT m0) instance (Data.Chatty.Atoms.ChAtoms (Text.Chatty.Channel.Printer.IntArchiverT m0), System.Chatty.Filesystem.ChFilesystem m0) => System.Chatty.Filesystem.ChFilesystem (Text.Chatty.Channel.Printer.IntArchiverT m0) instance System.Chatty.Filesystem.CanLoad m0 n0 => System.Chatty.Filesystem.CanLoad (Text.Chatty.Channel.Printer.IntArchiverT m0) n0 instance System.Chatty.Filesystem.CanSave m0 n0 => System.Chatty.Filesystem.CanSave (Text.Chatty.Channel.Printer.IntArchiverT m0) n0 instance System.Chatty.Filesystem.CanMount m0 n0 => System.Chatty.Filesystem.CanMount (Text.Chatty.Channel.Printer.IntArchiverT m0) n0 instance Text.Chatty.Scanner.ChScanner m0 => Text.Chatty.Scanner.ChScanner (Data.Chatty.Atoms.AtomStoreT m0) instance Text.Chatty.Printer.ChPrinter m0 => Text.Chatty.Printer.ChPrinter (Data.Chatty.Atoms.AtomStoreT m0) instance Text.Chatty.Scanner.Buffered.ChBufferedScanner m0 => Text.Chatty.Scanner.Buffered.ChBufferedScanner (Data.Chatty.Atoms.AtomStoreT m0) instance Text.Chatty.Finalizer.ChFinalizer m0 => Text.Chatty.Finalizer.ChFinalizer (Data.Chatty.Atoms.AtomStoreT m0) instance Text.Chatty.Expansion.ChExpand m0 => Text.Chatty.Expansion.ChExpand (Data.Chatty.Atoms.AtomStoreT m0) instance Text.Chatty.Expansion.Vars.ChExpanderEnv m0 => Text.Chatty.Expansion.Vars.ChExpanderEnv (Data.Chatty.Atoms.AtomStoreT m0) instance Text.Chatty.Expansion.History.ChHistoryEnv m0 => Text.Chatty.Expansion.History.ChHistoryEnv (Data.Chatty.Atoms.AtomStoreT m0) instance System.Chatty.Spawn.ChSpawn m0 => System.Chatty.Spawn.ChSpawn (Data.Chatty.Atoms.AtomStoreT m0) instance System.Chatty.Misc.ChRandom m0 => System.Chatty.Misc.ChRandom (Data.Chatty.Atoms.AtomStoreT m0) instance System.Chatty.Misc.ChClock m0 => System.Chatty.Misc.ChClock (Data.Chatty.Atoms.AtomStoreT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int (Data.Chatty.Atoms.AtomStoreT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool (Data.Chatty.Atoms.AtomStoreT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle (Data.Chatty.Atoms.AtomStoreT m0) instance Text.Chatty.Extended.Printer.ChExtendedPrinter m0 => Text.Chatty.Extended.Printer.ChExtendedPrinter (Data.Chatty.Atoms.AtomStoreT m0) instance Text.Chatty.Scanner.ChScanner m0 => Text.Chatty.Scanner.ChScanner (Data.Chatty.Counter.CounterT m0) instance Text.Chatty.Printer.ChPrinter m0 => Text.Chatty.Printer.ChPrinter (Data.Chatty.Counter.CounterT m0) instance Text.Chatty.Scanner.Buffered.ChBufferedScanner m0 => Text.Chatty.Scanner.Buffered.ChBufferedScanner (Data.Chatty.Counter.CounterT m0) instance Text.Chatty.Finalizer.ChFinalizer m0 => Text.Chatty.Finalizer.ChFinalizer (Data.Chatty.Counter.CounterT m0) instance Text.Chatty.Expansion.ChExpand m0 => Text.Chatty.Expansion.ChExpand (Data.Chatty.Counter.CounterT m0) instance Text.Chatty.Expansion.Vars.ChExpanderEnv m0 => Text.Chatty.Expansion.Vars.ChExpanderEnv (Data.Chatty.Counter.CounterT m0) instance Text.Chatty.Expansion.History.ChHistoryEnv m0 => Text.Chatty.Expansion.History.ChHistoryEnv (Data.Chatty.Counter.CounterT m0) instance System.Chatty.Spawn.ChSpawn m0 => System.Chatty.Spawn.ChSpawn (Data.Chatty.Counter.CounterT m0) instance System.Chatty.Misc.ChRandom m0 => System.Chatty.Misc.ChRandom (Data.Chatty.Counter.CounterT m0) instance System.Chatty.Misc.ChClock m0 => System.Chatty.Misc.ChClock (Data.Chatty.Counter.CounterT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int (Data.Chatty.Counter.CounterT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool (Data.Chatty.Counter.CounterT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle (Data.Chatty.Counter.CounterT m0) instance Text.Chatty.Extended.Printer.ChExtendedPrinter m0 => Text.Chatty.Extended.Printer.ChExtendedPrinter (Data.Chatty.Counter.CounterT m0) instance Text.Chatty.Scanner.ChScanner m0 => Text.Chatty.Scanner.ChScanner (System.Chatty.Filesystem.NullFsT m0) instance Text.Chatty.Printer.ChPrinter m0 => Text.Chatty.Printer.ChPrinter (System.Chatty.Filesystem.NullFsT m0) instance Text.Chatty.Scanner.Buffered.ChBufferedScanner m0 => Text.Chatty.Scanner.Buffered.ChBufferedScanner (System.Chatty.Filesystem.NullFsT m0) instance Text.Chatty.Finalizer.ChFinalizer m0 => Text.Chatty.Finalizer.ChFinalizer (System.Chatty.Filesystem.NullFsT m0) instance Text.Chatty.Expansion.ChExpand m0 => Text.Chatty.Expansion.ChExpand (System.Chatty.Filesystem.NullFsT m0) instance Text.Chatty.Expansion.Vars.ChExpanderEnv m0 => Text.Chatty.Expansion.Vars.ChExpanderEnv (System.Chatty.Filesystem.NullFsT m0) instance Text.Chatty.Expansion.History.ChHistoryEnv m0 => Text.Chatty.Expansion.History.ChHistoryEnv (System.Chatty.Filesystem.NullFsT m0) instance System.Chatty.Spawn.ChSpawn m0 => System.Chatty.Spawn.ChSpawn (System.Chatty.Filesystem.NullFsT m0) instance System.Chatty.Misc.ChRandom m0 => System.Chatty.Misc.ChRandom (System.Chatty.Filesystem.NullFsT m0) instance System.Chatty.Misc.ChClock m0 => System.Chatty.Misc.ChClock (System.Chatty.Filesystem.NullFsT m0) instance Data.Chatty.Counter.ChCounter m0 => Data.Chatty.Counter.ChCounter (System.Chatty.Filesystem.NullFsT m0) instance Data.Chatty.Atoms.ChAtoms m0 => Data.Chatty.Atoms.ChAtoms (System.Chatty.Filesystem.NullFsT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int (System.Chatty.Filesystem.NullFsT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool (System.Chatty.Filesystem.NullFsT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle (System.Chatty.Filesystem.NullFsT m0) instance Text.Chatty.Extended.Printer.ChExtendedPrinter m0 => Text.Chatty.Extended.Printer.ChExtendedPrinter (System.Chatty.Filesystem.NullFsT m0) instance Text.Chatty.Printer.ChPrinter m0 => Text.Chatty.Printer.ChPrinter (Text.Chatty.Scanner.Buffered.ScannerBufferT m0) instance Text.Chatty.Extended.Printer.ChExtendedPrinter m0 => Text.Chatty.Extended.Printer.ChExtendedPrinter (Text.Chatty.Scanner.Buffered.ScannerBufferT m0) instance Text.Chatty.Expansion.ChExpand m0 => Text.Chatty.Expansion.ChExpand (Text.Chatty.Scanner.Buffered.ScannerBufferT m0) instance Text.Chatty.Expansion.Vars.ChExpanderEnv m0 => Text.Chatty.Expansion.Vars.ChExpanderEnv (Text.Chatty.Scanner.Buffered.ScannerBufferT m0) instance Text.Chatty.Expansion.History.ChHistoryEnv m0 => Text.Chatty.Expansion.History.ChHistoryEnv (Text.Chatty.Scanner.Buffered.ScannerBufferT m0) instance Text.Chatty.Finalizer.ChFinalizer m0 => Text.Chatty.Finalizer.ChFinalizer (Text.Chatty.Scanner.Buffered.ScannerBufferT m0) instance System.Chatty.Misc.ChRandom m0 => System.Chatty.Misc.ChRandom (Text.Chatty.Scanner.Buffered.ScannerBufferT m0) instance System.Chatty.Misc.ChClock m0 => System.Chatty.Misc.ChClock (Text.Chatty.Scanner.Buffered.ScannerBufferT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int (Text.Chatty.Scanner.Buffered.ScannerBufferT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool (Text.Chatty.Scanner.Buffered.ScannerBufferT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle (Text.Chatty.Scanner.Buffered.ScannerBufferT m0) instance System.Chatty.Spawn.ChSpawn m0 => System.Chatty.Spawn.ChSpawn (Text.Chatty.Scanner.Buffered.ScannerBufferT m0) instance Data.Chatty.Counter.ChCounter m0 => Data.Chatty.Counter.ChCounter (Text.Chatty.Scanner.Buffered.ScannerBufferT m0) instance Data.Chatty.Atoms.ChAtoms m0 => Data.Chatty.Atoms.ChAtoms (Text.Chatty.Scanner.Buffered.ScannerBufferT m0) instance (Data.Chatty.Atoms.ChAtoms (Text.Chatty.Scanner.Buffered.ScannerBufferT m0), System.Chatty.Filesystem.ChFilesystem m0) => System.Chatty.Filesystem.ChFilesystem (Text.Chatty.Scanner.Buffered.ScannerBufferT m0) instance System.Chatty.Filesystem.CanLoad m0 n0 => System.Chatty.Filesystem.CanLoad (Text.Chatty.Scanner.Buffered.ScannerBufferT m0) n0 instance System.Chatty.Filesystem.CanSave m0 n0 => System.Chatty.Filesystem.CanSave (Text.Chatty.Scanner.Buffered.ScannerBufferT m0) n0 instance System.Chatty.Filesystem.CanMount m0 n0 => System.Chatty.Filesystem.CanMount (Text.Chatty.Scanner.Buffered.ScannerBufferT m0) n0 instance Text.Chatty.Scanner.ChScanner m0 => Text.Chatty.Scanner.ChScanner (Text.Chatty.Expansion.History.HistoryT m0) instance Text.Chatty.Scanner.Buffered.ChBufferedScanner m0 => Text.Chatty.Scanner.Buffered.ChBufferedScanner (Text.Chatty.Expansion.History.HistoryT m0) instance Text.Chatty.Printer.ChPrinter m0 => Text.Chatty.Printer.ChPrinter (Text.Chatty.Expansion.History.HistoryT m0) instance Text.Chatty.Extended.Printer.ChExtendedPrinter m0 => Text.Chatty.Extended.Printer.ChExtendedPrinter (Text.Chatty.Expansion.History.HistoryT m0) instance Text.Chatty.Finalizer.ChFinalizer m0 => Text.Chatty.Finalizer.ChFinalizer (Text.Chatty.Expansion.History.HistoryT m0) instance System.Chatty.Spawn.ChSpawn m0 => System.Chatty.Spawn.ChSpawn (Text.Chatty.Expansion.History.HistoryT m0) instance System.Chatty.Misc.ChRandom m0 => System.Chatty.Misc.ChRandom (Text.Chatty.Expansion.History.HistoryT m0) instance System.Chatty.Misc.ChClock m0 => System.Chatty.Misc.ChClock (Text.Chatty.Expansion.History.HistoryT m0) instance Text.Chatty.Expansion.Vars.ChExpanderEnv m0 => Text.Chatty.Expansion.Vars.ChExpanderEnv (Text.Chatty.Expansion.History.HistoryT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int (Text.Chatty.Expansion.History.HistoryT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool (Text.Chatty.Expansion.History.HistoryT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle (Text.Chatty.Expansion.History.HistoryT m0) instance Data.Chatty.Counter.ChCounter m0 => Data.Chatty.Counter.ChCounter (Text.Chatty.Expansion.History.HistoryT m0) instance Data.Chatty.Atoms.ChAtoms m0 => Data.Chatty.Atoms.ChAtoms (Text.Chatty.Expansion.History.HistoryT m0) instance (Data.Chatty.Atoms.ChAtoms (Text.Chatty.Expansion.History.HistoryT m0), System.Chatty.Filesystem.ChFilesystem m0) => System.Chatty.Filesystem.ChFilesystem (Text.Chatty.Expansion.History.HistoryT m0) instance System.Chatty.Filesystem.CanLoad m0 n0 => System.Chatty.Filesystem.CanLoad (Text.Chatty.Expansion.History.HistoryT m0) n0 instance System.Chatty.Filesystem.CanSave m0 n0 => System.Chatty.Filesystem.CanSave (Text.Chatty.Expansion.History.HistoryT m0) n0 instance System.Chatty.Filesystem.CanMount m0 n0 => System.Chatty.Filesystem.CanMount (Text.Chatty.Expansion.History.HistoryT m0) n0 instance Text.Chatty.Scanner.ChScanner m0 => Text.Chatty.Scanner.ChScanner (Text.Chatty.Expansion.NullExpanderT m0) instance Text.Chatty.Scanner.Buffered.ChBufferedScanner m0 => Text.Chatty.Scanner.Buffered.ChBufferedScanner (Text.Chatty.Expansion.NullExpanderT m0) instance Text.Chatty.Printer.ChPrinter m0 => Text.Chatty.Printer.ChPrinter (Text.Chatty.Expansion.NullExpanderT m0) instance Text.Chatty.Extended.Printer.ChExtendedPrinter m0 => Text.Chatty.Extended.Printer.ChExtendedPrinter (Text.Chatty.Expansion.NullExpanderT m0) instance Text.Chatty.Finalizer.ChFinalizer m0 => Text.Chatty.Finalizer.ChFinalizer (Text.Chatty.Expansion.NullExpanderT m0) instance System.Chatty.Spawn.ChSpawn m0 => System.Chatty.Spawn.ChSpawn (Text.Chatty.Expansion.NullExpanderT m0) instance System.Chatty.Misc.ChRandom m0 => System.Chatty.Misc.ChRandom (Text.Chatty.Expansion.NullExpanderT m0) instance System.Chatty.Misc.ChClock m0 => System.Chatty.Misc.ChClock (Text.Chatty.Expansion.NullExpanderT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int (Text.Chatty.Expansion.NullExpanderT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool (Text.Chatty.Expansion.NullExpanderT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle (Text.Chatty.Expansion.NullExpanderT m0) instance Data.Chatty.Counter.ChCounter m0 => Data.Chatty.Counter.ChCounter (Text.Chatty.Expansion.NullExpanderT m0) instance Data.Chatty.Atoms.ChAtoms m0 => Data.Chatty.Atoms.ChAtoms (Text.Chatty.Expansion.NullExpanderT m0) instance (Data.Chatty.Atoms.ChAtoms (Text.Chatty.Expansion.NullExpanderT m0), System.Chatty.Filesystem.ChFilesystem m0) => System.Chatty.Filesystem.ChFilesystem (Text.Chatty.Expansion.NullExpanderT m0) instance System.Chatty.Filesystem.CanLoad m0 n0 => System.Chatty.Filesystem.CanLoad (Text.Chatty.Expansion.NullExpanderT m0) n0 instance System.Chatty.Filesystem.CanSave m0 n0 => System.Chatty.Filesystem.CanSave (Text.Chatty.Expansion.NullExpanderT m0) n0 instance System.Chatty.Filesystem.CanMount m0 n0 => System.Chatty.Filesystem.CanMount (Text.Chatty.Expansion.NullExpanderT m0) n0 instance Text.Chatty.Scanner.ChScanner m0 => Text.Chatty.Scanner.ChScanner (Text.Chatty.Extended.ANSI.AnsiPrinterT m0) instance Text.Chatty.Scanner.Buffered.ChBufferedScanner m0 => Text.Chatty.Scanner.Buffered.ChBufferedScanner (Text.Chatty.Extended.ANSI.AnsiPrinterT m0) instance Text.Chatty.Expansion.Vars.ChExpanderEnv m0 => Text.Chatty.Expansion.Vars.ChExpanderEnv (Text.Chatty.Extended.ANSI.AnsiPrinterT m0) instance Text.Chatty.Expansion.History.ChHistoryEnv m0 => Text.Chatty.Expansion.History.ChHistoryEnv (Text.Chatty.Extended.ANSI.AnsiPrinterT m0) instance Text.Chatty.Finalizer.ChFinalizer m0 => Text.Chatty.Finalizer.ChFinalizer (Text.Chatty.Extended.ANSI.AnsiPrinterT m0) instance System.Chatty.Spawn.ChSpawn m0 => System.Chatty.Spawn.ChSpawn (Text.Chatty.Extended.ANSI.AnsiPrinterT m0) instance System.Chatty.Misc.ChRandom m0 => System.Chatty.Misc.ChRandom (Text.Chatty.Extended.ANSI.AnsiPrinterT m0) instance System.Chatty.Misc.ChClock m0 => System.Chatty.Misc.ChClock (Text.Chatty.Extended.ANSI.AnsiPrinterT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int (Text.Chatty.Extended.ANSI.AnsiPrinterT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool (Text.Chatty.Extended.ANSI.AnsiPrinterT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle (Text.Chatty.Extended.ANSI.AnsiPrinterT m0) instance Data.Chatty.Counter.ChCounter m0 => Data.Chatty.Counter.ChCounter (Text.Chatty.Extended.ANSI.AnsiPrinterT m0) instance Data.Chatty.Atoms.ChAtoms m0 => Data.Chatty.Atoms.ChAtoms (Text.Chatty.Extended.ANSI.AnsiPrinterT m0) instance (Data.Chatty.Atoms.ChAtoms (Text.Chatty.Extended.ANSI.AnsiPrinterT m0), System.Chatty.Filesystem.ChFilesystem m0) => System.Chatty.Filesystem.ChFilesystem (Text.Chatty.Extended.ANSI.AnsiPrinterT m0) instance System.Chatty.Filesystem.CanLoad m0 n0 => System.Chatty.Filesystem.CanLoad (Text.Chatty.Extended.ANSI.AnsiPrinterT m0) n0 instance System.Chatty.Filesystem.CanSave m0 n0 => System.Chatty.Filesystem.CanSave (Text.Chatty.Extended.ANSI.AnsiPrinterT m0) n0 instance System.Chatty.Filesystem.CanMount m0 n0 => System.Chatty.Filesystem.CanMount (Text.Chatty.Extended.ANSI.AnsiPrinterT m0) n0 instance Text.Chatty.Scanner.ChScanner m0 => Text.Chatty.Scanner.ChScanner (Text.Chatty.Extended.HTML.HtmlPrinterT m0) instance Text.Chatty.Scanner.Buffered.ChBufferedScanner m0 => Text.Chatty.Scanner.Buffered.ChBufferedScanner (Text.Chatty.Extended.HTML.HtmlPrinterT m0) instance Text.Chatty.Expansion.Vars.ChExpanderEnv m0 => Text.Chatty.Expansion.Vars.ChExpanderEnv (Text.Chatty.Extended.HTML.HtmlPrinterT m0) instance Text.Chatty.Expansion.History.ChHistoryEnv m0 => Text.Chatty.Expansion.History.ChHistoryEnv (Text.Chatty.Extended.HTML.HtmlPrinterT m0) instance Text.Chatty.Finalizer.ChFinalizer m0 => Text.Chatty.Finalizer.ChFinalizer (Text.Chatty.Extended.HTML.HtmlPrinterT m0) instance System.Chatty.Spawn.ChSpawn m0 => System.Chatty.Spawn.ChSpawn (Text.Chatty.Extended.HTML.HtmlPrinterT m0) instance System.Chatty.Misc.ChRandom m0 => System.Chatty.Misc.ChRandom (Text.Chatty.Extended.HTML.HtmlPrinterT m0) instance System.Chatty.Misc.ChClock m0 => System.Chatty.Misc.ChClock (Text.Chatty.Extended.HTML.HtmlPrinterT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int (Text.Chatty.Extended.HTML.HtmlPrinterT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool (Text.Chatty.Extended.HTML.HtmlPrinterT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle (Text.Chatty.Extended.HTML.HtmlPrinterT m0) instance Data.Chatty.Counter.ChCounter m0 => Data.Chatty.Counter.ChCounter (Text.Chatty.Extended.HTML.HtmlPrinterT m0) instance Data.Chatty.Atoms.ChAtoms m0 => Data.Chatty.Atoms.ChAtoms (Text.Chatty.Extended.HTML.HtmlPrinterT m0) instance (Data.Chatty.Atoms.ChAtoms (Text.Chatty.Extended.HTML.HtmlPrinterT m0), System.Chatty.Filesystem.ChFilesystem m0) => System.Chatty.Filesystem.ChFilesystem (Text.Chatty.Extended.HTML.HtmlPrinterT m0) instance System.Chatty.Filesystem.CanLoad m0 n0 => System.Chatty.Filesystem.CanLoad (Text.Chatty.Extended.HTML.HtmlPrinterT m0) n0 instance System.Chatty.Filesystem.CanSave m0 n0 => System.Chatty.Filesystem.CanSave (Text.Chatty.Extended.HTML.HtmlPrinterT m0) n0 instance System.Chatty.Filesystem.CanMount m0 n0 => System.Chatty.Filesystem.CanMount (Text.Chatty.Extended.HTML.HtmlPrinterT m0) n0 instance Text.Chatty.Printer.ChPrinter m0 => Text.Chatty.Printer.ChPrinter (System.Chatty.Spawn.Overlay.SpawnOverlayT m0) instance Text.Chatty.Extended.Printer.ChExtendedPrinter m0 => Text.Chatty.Extended.Printer.ChExtendedPrinter (System.Chatty.Spawn.Overlay.SpawnOverlayT m0) instance Text.Chatty.Scanner.ChScanner m0 => Text.Chatty.Scanner.ChScanner (System.Chatty.Spawn.Overlay.SpawnOverlayT m0) instance Text.Chatty.Scanner.Buffered.ChBufferedScanner m0 => Text.Chatty.Scanner.Buffered.ChBufferedScanner (System.Chatty.Spawn.Overlay.SpawnOverlayT m0) instance Text.Chatty.Expansion.ChExpand m0 => Text.Chatty.Expansion.ChExpand (System.Chatty.Spawn.Overlay.SpawnOverlayT m0) instance Text.Chatty.Expansion.Vars.ChExpanderEnv m0 => Text.Chatty.Expansion.Vars.ChExpanderEnv (System.Chatty.Spawn.Overlay.SpawnOverlayT m0) instance Text.Chatty.Expansion.History.ChHistoryEnv m0 => Text.Chatty.Expansion.History.ChHistoryEnv (System.Chatty.Spawn.Overlay.SpawnOverlayT m0) instance Text.Chatty.Finalizer.ChFinalizer m0 => Text.Chatty.Finalizer.ChFinalizer (System.Chatty.Spawn.Overlay.SpawnOverlayT m0) instance System.Chatty.Misc.ChRandom m0 => System.Chatty.Misc.ChRandom (System.Chatty.Spawn.Overlay.SpawnOverlayT m0) instance System.Chatty.Misc.ChClock m0 => System.Chatty.Misc.ChClock (System.Chatty.Spawn.Overlay.SpawnOverlayT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int (System.Chatty.Spawn.Overlay.SpawnOverlayT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool (System.Chatty.Spawn.Overlay.SpawnOverlayT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle (System.Chatty.Spawn.Overlay.SpawnOverlayT m0) instance Data.Chatty.Counter.ChCounter m0 => Data.Chatty.Counter.ChCounter (System.Chatty.Spawn.Overlay.SpawnOverlayT m0) instance Data.Chatty.Atoms.ChAtoms m0 => Data.Chatty.Atoms.ChAtoms (System.Chatty.Spawn.Overlay.SpawnOverlayT m0) instance (Data.Chatty.Atoms.ChAtoms (System.Chatty.Spawn.Overlay.SpawnOverlayT m0), System.Chatty.Filesystem.ChFilesystem m0) => System.Chatty.Filesystem.ChFilesystem (System.Chatty.Spawn.Overlay.SpawnOverlayT m0) instance System.Chatty.Filesystem.CanLoad m0 n0 => System.Chatty.Filesystem.CanLoad (System.Chatty.Spawn.Overlay.SpawnOverlayT m0) n0 instance System.Chatty.Filesystem.CanSave m0 n0 => System.Chatty.Filesystem.CanSave (System.Chatty.Spawn.Overlay.SpawnOverlayT m0) n0 instance System.Chatty.Filesystem.CanMount m0 n0 => System.Chatty.Filesystem.CanMount (System.Chatty.Spawn.Overlay.SpawnOverlayT m0) n0 instance Text.Chatty.Printer.ChPrinter m0 => Text.Chatty.Printer.ChPrinter (Text.Chatty.Scanner.InRedirT m0) instance Text.Chatty.Extended.Printer.ChExtendedPrinter m0 => Text.Chatty.Extended.Printer.ChExtendedPrinter (Text.Chatty.Scanner.InRedirT m0) instance Text.Chatty.Expansion.ChExpand m0 => Text.Chatty.Expansion.ChExpand (Text.Chatty.Scanner.InRedirT m0) instance Text.Chatty.Expansion.Vars.ChExpanderEnv m0 => Text.Chatty.Expansion.Vars.ChExpanderEnv (Text.Chatty.Scanner.InRedirT m0) instance Text.Chatty.Expansion.History.ChHistoryEnv m0 => Text.Chatty.Expansion.History.ChHistoryEnv (Text.Chatty.Scanner.InRedirT m0) instance System.Chatty.Spawn.ChSpawn m0 => System.Chatty.Spawn.ChSpawn (Text.Chatty.Scanner.InRedirT m0) instance System.Chatty.Misc.ChRandom m0 => System.Chatty.Misc.ChRandom (Text.Chatty.Scanner.InRedirT m0) instance System.Chatty.Misc.ChClock m0 => System.Chatty.Misc.ChClock (Text.Chatty.Scanner.InRedirT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int (Text.Chatty.Scanner.InRedirT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool (Text.Chatty.Scanner.InRedirT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle (Text.Chatty.Scanner.InRedirT m0) instance Data.Chatty.Counter.ChCounter m0 => Data.Chatty.Counter.ChCounter (Text.Chatty.Scanner.InRedirT m0) instance Data.Chatty.Atoms.ChAtoms m0 => Data.Chatty.Atoms.ChAtoms (Text.Chatty.Scanner.InRedirT m0) instance (Data.Chatty.Atoms.ChAtoms (Text.Chatty.Scanner.InRedirT m0), System.Chatty.Filesystem.ChFilesystem m0) => System.Chatty.Filesystem.ChFilesystem (Text.Chatty.Scanner.InRedirT m0) instance System.Chatty.Filesystem.CanLoad m0 n0 => System.Chatty.Filesystem.CanLoad (Text.Chatty.Scanner.InRedirT m0) n0 instance System.Chatty.Filesystem.CanSave m0 n0 => System.Chatty.Filesystem.CanSave (Text.Chatty.Scanner.InRedirT m0) n0 instance System.Chatty.Filesystem.CanMount m0 n0 => System.Chatty.Filesystem.CanMount (Text.Chatty.Scanner.InRedirT m0) n0 instance Text.Chatty.Printer.ChPrinter m0 => Text.Chatty.Printer.ChPrinter (Text.Chatty.Scanner.QuietT m0) instance Text.Chatty.Extended.Printer.ChExtendedPrinter m0 => Text.Chatty.Extended.Printer.ChExtendedPrinter (Text.Chatty.Scanner.QuietT m0) instance Text.Chatty.Expansion.ChExpand m0 => Text.Chatty.Expansion.ChExpand (Text.Chatty.Scanner.QuietT m0) instance Text.Chatty.Expansion.Vars.ChExpanderEnv m0 => Text.Chatty.Expansion.Vars.ChExpanderEnv (Text.Chatty.Scanner.QuietT m0) instance Text.Chatty.Expansion.History.ChHistoryEnv m0 => Text.Chatty.Expansion.History.ChHistoryEnv (Text.Chatty.Scanner.QuietT m0) instance System.Chatty.Spawn.ChSpawn m0 => System.Chatty.Spawn.ChSpawn (Text.Chatty.Scanner.QuietT m0) instance System.Chatty.Misc.ChRandom m0 => System.Chatty.Misc.ChRandom (Text.Chatty.Scanner.QuietT m0) instance System.Chatty.Misc.ChClock m0 => System.Chatty.Misc.ChClock (Text.Chatty.Scanner.QuietT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int (Text.Chatty.Scanner.QuietT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool (Text.Chatty.Scanner.QuietT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle (Text.Chatty.Scanner.QuietT m0) instance Data.Chatty.Counter.ChCounter m0 => Data.Chatty.Counter.ChCounter (Text.Chatty.Scanner.QuietT m0) instance Data.Chatty.Atoms.ChAtoms m0 => Data.Chatty.Atoms.ChAtoms (Text.Chatty.Scanner.QuietT m0) instance (Data.Chatty.Atoms.ChAtoms (Text.Chatty.Scanner.QuietT m0), System.Chatty.Filesystem.ChFilesystem m0) => System.Chatty.Filesystem.ChFilesystem (Text.Chatty.Scanner.QuietT m0) instance System.Chatty.Filesystem.CanLoad m0 n0 => System.Chatty.Filesystem.CanLoad (Text.Chatty.Scanner.QuietT m0) n0 instance System.Chatty.Filesystem.CanSave m0 n0 => System.Chatty.Filesystem.CanSave (Text.Chatty.Scanner.QuietT m0) n0 instance System.Chatty.Filesystem.CanMount m0 n0 => System.Chatty.Filesystem.CanMount (Text.Chatty.Scanner.QuietT m0) n0 instance Text.Chatty.Printer.ChPrinter m0 => Text.Chatty.Printer.ChPrinter (Text.Chatty.Scanner.HereStringT m0) instance Text.Chatty.Extended.Printer.ChExtendedPrinter m0 => Text.Chatty.Extended.Printer.ChExtendedPrinter (Text.Chatty.Scanner.HereStringT m0) instance Text.Chatty.Expansion.ChExpand m0 => Text.Chatty.Expansion.ChExpand (Text.Chatty.Scanner.HereStringT m0) instance Text.Chatty.Expansion.Vars.ChExpanderEnv m0 => Text.Chatty.Expansion.Vars.ChExpanderEnv (Text.Chatty.Scanner.HereStringT m0) instance Text.Chatty.Expansion.History.ChHistoryEnv m0 => Text.Chatty.Expansion.History.ChHistoryEnv (Text.Chatty.Scanner.HereStringT m0) instance System.Chatty.Spawn.ChSpawn m0 => System.Chatty.Spawn.ChSpawn (Text.Chatty.Scanner.HereStringT m0) instance System.Chatty.Misc.ChRandom m0 => System.Chatty.Misc.ChRandom (Text.Chatty.Scanner.HereStringT m0) instance System.Chatty.Misc.ChClock m0 => System.Chatty.Misc.ChClock (Text.Chatty.Scanner.HereStringT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int (Text.Chatty.Scanner.HereStringT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool (Text.Chatty.Scanner.HereStringT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle (Text.Chatty.Scanner.HereStringT m0) instance Data.Chatty.Counter.ChCounter m0 => Data.Chatty.Counter.ChCounter (Text.Chatty.Scanner.HereStringT m0) instance Data.Chatty.Atoms.ChAtoms m0 => Data.Chatty.Atoms.ChAtoms (Text.Chatty.Scanner.HereStringT m0) instance (Data.Chatty.Atoms.ChAtoms (Text.Chatty.Scanner.HereStringT m0), System.Chatty.Filesystem.ChFilesystem m0) => System.Chatty.Filesystem.ChFilesystem (Text.Chatty.Scanner.HereStringT m0) instance System.Chatty.Filesystem.CanLoad m0 n0 => System.Chatty.Filesystem.CanLoad (Text.Chatty.Scanner.HereStringT m0) n0 instance System.Chatty.Filesystem.CanSave m0 n0 => System.Chatty.Filesystem.CanSave (Text.Chatty.Scanner.HereStringT m0) n0 instance System.Chatty.Filesystem.CanMount m0 n0 => System.Chatty.Filesystem.CanMount (Text.Chatty.Scanner.HereStringT m0) n0 instance Text.Chatty.Scanner.ChScanner m0 => Text.Chatty.Scanner.ChScanner (Text.Chatty.Expansion.Vars.ExpanderT m0) instance Text.Chatty.Scanner.Buffered.ChBufferedScanner m0 => Text.Chatty.Scanner.Buffered.ChBufferedScanner (Text.Chatty.Expansion.Vars.ExpanderT m0) instance Text.Chatty.Printer.ChPrinter m0 => Text.Chatty.Printer.ChPrinter (Text.Chatty.Expansion.Vars.ExpanderT m0) instance Text.Chatty.Finalizer.ChFinalizer m0 => Text.Chatty.Finalizer.ChFinalizer (Text.Chatty.Expansion.Vars.ExpanderT m0) instance System.Chatty.Spawn.ChSpawn m0 => System.Chatty.Spawn.ChSpawn (Text.Chatty.Expansion.Vars.ExpanderT m0) instance System.Chatty.Misc.ChRandom m0 => System.Chatty.Misc.ChRandom (Text.Chatty.Expansion.Vars.ExpanderT m0) instance System.Chatty.Misc.ChClock m0 => System.Chatty.Misc.ChClock (Text.Chatty.Expansion.Vars.ExpanderT m0) instance Text.Chatty.Expansion.History.ChHistoryEnv m0 => Text.Chatty.Expansion.History.ChHistoryEnv (Text.Chatty.Expansion.Vars.ExpanderT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int (Text.Chatty.Expansion.Vars.ExpanderT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool (Text.Chatty.Expansion.Vars.ExpanderT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle (Text.Chatty.Expansion.Vars.ExpanderT m0) instance Data.Chatty.Counter.ChCounter m0 => Data.Chatty.Counter.ChCounter (Text.Chatty.Expansion.Vars.ExpanderT m0) instance Data.Chatty.Atoms.ChAtoms m0 => Data.Chatty.Atoms.ChAtoms (Text.Chatty.Expansion.Vars.ExpanderT m0) instance (Data.Chatty.Atoms.ChAtoms (Text.Chatty.Expansion.Vars.ExpanderT m0), System.Chatty.Filesystem.ChFilesystem m0) => System.Chatty.Filesystem.ChFilesystem (Text.Chatty.Expansion.Vars.ExpanderT m0) instance System.Chatty.Filesystem.CanLoad m0 n0 => System.Chatty.Filesystem.CanLoad (Text.Chatty.Expansion.Vars.ExpanderT m0) n0 instance System.Chatty.Filesystem.CanSave m0 n0 => System.Chatty.Filesystem.CanSave (Text.Chatty.Expansion.Vars.ExpanderT m0) n0 instance System.Chatty.Filesystem.CanMount m0 n0 => System.Chatty.Filesystem.CanMount (Text.Chatty.Expansion.Vars.ExpanderT m0) n0 instance Text.Chatty.Scanner.ChScanner m0 => Text.Chatty.Scanner.ChScanner (Text.Chatty.Finalizer.HandleCloserT m0) instance Text.Chatty.Scanner.Buffered.ChBufferedScanner m0 => Text.Chatty.Scanner.Buffered.ChBufferedScanner (Text.Chatty.Finalizer.HandleCloserT m0) instance Text.Chatty.Printer.ChPrinter m0 => Text.Chatty.Printer.ChPrinter (Text.Chatty.Finalizer.HandleCloserT m0) instance Text.Chatty.Expansion.ChExpand m0 => Text.Chatty.Expansion.ChExpand (Text.Chatty.Finalizer.HandleCloserT m0) instance Text.Chatty.Expansion.Vars.ChExpanderEnv m0 => Text.Chatty.Expansion.Vars.ChExpanderEnv (Text.Chatty.Finalizer.HandleCloserT m0) instance Text.Chatty.Expansion.History.ChHistoryEnv m0 => Text.Chatty.Expansion.History.ChHistoryEnv (Text.Chatty.Finalizer.HandleCloserT m0) instance System.Chatty.Spawn.ChSpawn m0 => System.Chatty.Spawn.ChSpawn (Text.Chatty.Finalizer.HandleCloserT m0) instance System.Chatty.Misc.ChRandom m0 => System.Chatty.Misc.ChRandom (Text.Chatty.Finalizer.HandleCloserT m0) instance System.Chatty.Misc.ChClock m0 => System.Chatty.Misc.ChClock (Text.Chatty.Finalizer.HandleCloserT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Int (Text.Chatty.Finalizer.HandleCloserT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.Types.Bool (Text.Chatty.Finalizer.HandleCloserT m0) instance Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle m0 => Text.Chatty.Channel.Printer.ChChannelPrinter GHC.IO.Handle.Types.Handle (Text.Chatty.Finalizer.HandleCloserT m0) instance Data.Chatty.Counter.ChCounter m0 => Data.Chatty.Counter.ChCounter (Text.Chatty.Finalizer.HandleCloserT m0) instance Data.Chatty.Atoms.ChAtoms m0 => Data.Chatty.Atoms.ChAtoms (Text.Chatty.Finalizer.HandleCloserT m0) instance (Data.Chatty.Atoms.ChAtoms (Text.Chatty.Finalizer.HandleCloserT m0), System.Chatty.Filesystem.ChFilesystem m0) => System.Chatty.Filesystem.ChFilesystem (Text.Chatty.Finalizer.HandleCloserT m0) instance System.Chatty.Filesystem.CanLoad m0 n0 => System.Chatty.Filesystem.CanLoad (Text.Chatty.Finalizer.HandleCloserT m0) n0 instance System.Chatty.Filesystem.CanSave m0 n0 => System.Chatty.Filesystem.CanSave (Text.Chatty.Finalizer.HandleCloserT m0) n0 instance System.Chatty.Filesystem.CanMount m0 n0 => System.Chatty.Filesystem.CanMount (Text.Chatty.Finalizer.HandleCloserT m0) n0 instance Text.Chatty.Scanner.ChScanner m0 => Text.Chatty.Scanner.ChScanner (Text.Chatty.Printer.OutRedirT m0) instance Text.Chatty.Scanner.Buffered.ChBufferedScanner m0 => Text.Chatty.Scanner.Buffered.ChBufferedScanner (Text.Chatty.Printer.OutRedirT m0) instance Text.Chatty.Finalizer.ChFinalizer m0 => Text.Chatty.Finalizer.ChFinalizer (Text.Chatty.Printer.OutRedirT m0) instance Text.Chatty.Expansion.ChExpand m0 => Text.Chatty.Expansion.ChExpand (Text.Chatty.Printer.OutRedirT m0) instance Text.Chatty.Expansion.Vars.ChExpanderEnv m0 => Text.Chatty.Expansion.Vars.ChExpanderEnv (Text.Chatty.Printer.OutRedirT m0) instance Text.Chatty.Expansion.History.ChHistoryEnv m0 => Text.Chatty.Expansion.History.ChHistoryEnv (Text.Chatty.Printer.OutRedirT m0) instance System.Chatty.Spawn.ChSpawn m0 => System.Chatty.Spawn.ChSpawn (Text.Chatty.Printer.OutRedirT m0) instance System.Chatty.Misc.ChRandom m0 => System.Chatty.Misc.ChRandom (Text.Chatty.Printer.OutRedirT m0) instance System.Chatty.Misc.ChClock m0 => System.Chatty.Misc.ChClock (Text.Chatty.Printer.OutRedirT m0) instance Data.Chatty.Counter.ChCounter m0 => Data.Chatty.Counter.ChCounter (Text.Chatty.Printer.OutRedirT m0) instance Data.Chatty.Atoms.ChAtoms m0 => Data.Chatty.Atoms.ChAtoms (Text.Chatty.Printer.OutRedirT m0) instance (Data.Chatty.Atoms.ChAtoms (Text.Chatty.Printer.OutRedirT m0), System.Chatty.Filesystem.ChFilesystem m0) => System.Chatty.Filesystem.ChFilesystem (Text.Chatty.Printer.OutRedirT m0) instance System.Chatty.Filesystem.CanLoad m0 n0 => System.Chatty.Filesystem.CanLoad (Text.Chatty.Printer.OutRedirT m0) n0 instance System.Chatty.Filesystem.CanSave m0 n0 => System.Chatty.Filesystem.CanSave (Text.Chatty.Printer.OutRedirT m0) n0 instance System.Chatty.Filesystem.CanMount m0 n0 => System.Chatty.Filesystem.CanMount (Text.Chatty.Printer.OutRedirT m0) n0 instance Text.Chatty.Scanner.ChScanner m0 => Text.Chatty.Scanner.ChScanner (Text.Chatty.Printer.DeafT m0) instance Text.Chatty.Scanner.Buffered.ChBufferedScanner m0 => Text.Chatty.Scanner.Buffered.ChBufferedScanner (Text.Chatty.Printer.DeafT m0) instance Text.Chatty.Finalizer.ChFinalizer m0 => Text.Chatty.Finalizer.ChFinalizer (Text.Chatty.Printer.DeafT m0) instance Text.Chatty.Expansion.ChExpand m0 => Text.Chatty.Expansion.ChExpand (Text.Chatty.Printer.DeafT m0) instance Text.Chatty.Expansion.Vars.ChExpanderEnv m0 => Text.Chatty.Expansion.Vars.ChExpanderEnv (Text.Chatty.Printer.DeafT m0) instance Text.Chatty.Expansion.History.ChHistoryEnv m0 => Text.Chatty.Expansion.History.ChHistoryEnv (Text.Chatty.Printer.DeafT m0) instance System.Chatty.Spawn.ChSpawn m0 => System.Chatty.Spawn.ChSpawn (Text.Chatty.Printer.DeafT m0) instance System.Chatty.Misc.ChRandom m0 => System.Chatty.Misc.ChRandom (Text.Chatty.Printer.DeafT m0) instance System.Chatty.Misc.ChClock m0 => System.Chatty.Misc.ChClock (Text.Chatty.Printer.DeafT m0) instance Data.Chatty.Counter.ChCounter m0 => Data.Chatty.Counter.ChCounter (Text.Chatty.Printer.DeafT m0) instance Data.Chatty.Atoms.ChAtoms m0 => Data.Chatty.Atoms.ChAtoms (Text.Chatty.Printer.DeafT m0) instance (Data.Chatty.Atoms.ChAtoms (Text.Chatty.Printer.DeafT m0), System.Chatty.Filesystem.ChFilesystem m0) => System.Chatty.Filesystem.ChFilesystem (Text.Chatty.Printer.DeafT m0) instance System.Chatty.Filesystem.CanLoad m0 n0 => System.Chatty.Filesystem.CanLoad (Text.Chatty.Printer.DeafT m0) n0 instance System.Chatty.Filesystem.CanSave m0 n0 => System.Chatty.Filesystem.CanSave (Text.Chatty.Printer.DeafT m0) n0 instance System.Chatty.Filesystem.CanMount m0 n0 => System.Chatty.Filesystem.CanMount (Text.Chatty.Printer.DeafT m0) n0 instance Text.Chatty.Scanner.ChScanner m0 => Text.Chatty.Scanner.ChScanner (Text.Chatty.Printer.RecorderT m0) instance Text.Chatty.Scanner.Buffered.ChBufferedScanner m0 => Text.Chatty.Scanner.Buffered.ChBufferedScanner (Text.Chatty.Printer.RecorderT m0) instance Text.Chatty.Finalizer.ChFinalizer m0 => Text.Chatty.Finalizer.ChFinalizer (Text.Chatty.Printer.RecorderT m0) instance Text.Chatty.Expansion.ChExpand m0 => Text.Chatty.Expansion.ChExpand (Text.Chatty.Printer.RecorderT m0) instance Text.Chatty.Expansion.Vars.ChExpanderEnv m0 => Text.Chatty.Expansion.Vars.ChExpanderEnv (Text.Chatty.Printer.RecorderT m0) instance Text.Chatty.Expansion.History.ChHistoryEnv m0 => Text.Chatty.Expansion.History.ChHistoryEnv (Text.Chatty.Printer.RecorderT m0) instance System.Chatty.Spawn.ChSpawn m0 => System.Chatty.Spawn.ChSpawn (Text.Chatty.Printer.RecorderT m0) instance System.Chatty.Misc.ChRandom m0 => System.Chatty.Misc.ChRandom (Text.Chatty.Printer.RecorderT m0) instance System.Chatty.Misc.ChClock m0 => System.Chatty.Misc.ChClock (Text.Chatty.Printer.RecorderT m0) instance Data.Chatty.Counter.ChCounter m0 => Data.Chatty.Counter.ChCounter (Text.Chatty.Printer.RecorderT m0) instance Data.Chatty.Atoms.ChAtoms m0 => Data.Chatty.Atoms.ChAtoms (Text.Chatty.Printer.RecorderT m0) instance (Data.Chatty.Atoms.ChAtoms (Text.Chatty.Printer.RecorderT m0), System.Chatty.Filesystem.ChFilesystem m0) => System.Chatty.Filesystem.ChFilesystem (Text.Chatty.Printer.RecorderT m0) instance System.Chatty.Filesystem.CanLoad m0 n0 => System.Chatty.Filesystem.CanLoad (Text.Chatty.Printer.RecorderT m0) n0 instance System.Chatty.Filesystem.CanSave m0 n0 => System.Chatty.Filesystem.CanSave (Text.Chatty.Printer.RecorderT m0) n0 instance System.Chatty.Filesystem.CanMount m0 n0 => System.Chatty.Filesystem.CanMount (Text.Chatty.Printer.RecorderT m0) n0 -- | Provides in-haskell implementations for some standard functions module System.Chatty.Commands -- | Like cat on the command line. Accepts a list of filenames. -- Simple pass-through, if none are provided. cat :: (ChScanner m, ChPrinter m, MonadIO m, Functor m, ChFinalizer m) => [String] -> m () -- | Like cat, but reverses the line order. tac :: (ChFinalizer m, ChScanner m, ChPrinter m, MonadIO m, Functor m) => [String] -> m () -- | Pass-through, simultanously writing all input to a given file. tee :: (ChScanner m, ChPrinter m, MonadIO m, Functor m) => String -> m () -- | Prints the given string, after expanding it. echo :: (ChPrinter m, ChExpand m) => String -> m () -- | Mode for wc. data WcMode CountChars :: WcMode CountLines :: WcMode CountWords :: WcMode -- | Count characters, lines or words of the input. wc :: (ChScanner m, ChPrinter m, MonadIO m, Functor m) => WcMode -> m () -- | Change to given directory. cd :: MonadIO m => String -> m () -- | Print current working directory. pwd :: (MonadIO m, ChPrinter m) => m () -- | List directory contents of the given directories (current one, if -- empty list). ls :: (MonadIO m, ChPrinter m) => [String] -> m () -- | Filters only the first n lines of the input. head :: (ChScanner m, ChPrinter m, MonadIO m, Functor m) => Int -> m () -- | FIlters only the last n lines of the input. tail :: (ChScanner m, ChPrinter m, MonadIO m, Functor m) => Int -> m ()