module System.Terminal
(
withTerminal
, runTerminalT
, TerminalT ()
, MonadPrinter (..)
, MonadMarkupPrinter (..)
, MonadFormattingPrinter (..)
, MonadColorPrinter (..)
, putDoc
, putDocLn
, putPretty
, putPrettyLn
, putSimpleDocStream
, MonadScreen (..)
, Size (..)
, Position (..)
, EraseMode (..)
, MonadTerminal
, MonadInput (..)
, awaitEvent
, checkInterrupt
, Event (..)
, Interrupt (..)
, Key (..)
, Modifiers ()
, shiftKey
, ctrlKey
, altKey
, metaKey
, Direction (..)
, MouseEvent (..)
, MouseButton (..)
, WindowEvent (..)
, DeviceEvent (..)
) where
import Control.Monad.Catch
import Control.Monad.IO.Class
import System.Terminal.MonadInput
import System.Terminal.MonadPrinter
import System.Terminal.MonadScreen
import System.Terminal.MonadTerminal
import System.Terminal.Pretty
import System.Terminal.TerminalT
import qualified System.Terminal.Platform
withTerminal :: (MonadIO m, MonadMask m) => (System.Terminal.Platform.LocalTerminal -> m a) -> m a
withTerminal = System.Terminal.Platform.withTerminal