-- 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 ()