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

Safe HaskellNone

Text.Chatty.Interactor.Templates

Description

Declares serveral templates for comfortable instance derivation

Synopsis

Documentation

mkScanner :: Name -> Q [Dec]Source

Automatically derives a MonadScanner instance for you.

mkPrinter :: Name -> Q [Dec]Source

Automatically derives a MonadPrinter instance for you.

mkFinalizer :: Name -> Q [Dec]Source

Automatically derives a MonadFinalizer instance for you.

mkExpander :: Name -> Q [Dec]Source

Automatically derives a MonadExpand instance for you.

mkExpanderEnv :: Name -> Q [Dec]Source

Automatically derives an ExpanderEnv instance for you

mkHistoryEnv :: Name -> Q [Dec]Source

Automatically derives a HistoryEnv instance for you

mkInteractor :: InteractorMaker i => Name -> iSource

mkInteractor takes a type name and a list of typeclass derivers and applies them all.

mkSpawn :: Name -> Q [Dec]Source

Automatically derives a MonadSpawn instance for you.

mkRandom :: Name -> Q [Dec]Source

Automatically derives a MonadRandom instance for you.

mkClock :: Name -> Q [Dec]Source

Automatically derives a MonadClock instance for you.

mkChatty :: Name -> Q [Dec]Source

Automatically derives all chatty typeclasses for you.

mkChannelPrinter :: Name -> Name -> Q [Dec]Source

Automatically derives a ChannelPrinter instance for you.

mkDefCP :: Name -> Q [Dec]Source

Automatically derives ChannelPrinter instances for Int, Bool and Handle channels.

mkArchiver :: Name -> Q [Dec]Source

Automatically derives all chatty typeclasses that are sensible for an ArchiverT.

mkExtendedPrinter :: Name -> Q [Dec]Source

Automatically derives an ExtendedPrinter instance for you.