Safe Haskell | None |
---|---|
Language | GHC2021 |
Effects.System.Terminal
Description
Provides the MonadTerminal
typeclass.
Since: 0.1
Synopsis
- class Monad m => MonadTerminal (m :: Type -> Type) where
- putStr :: String -> m ()
- putStrLn :: String -> m ()
- putBinary :: ByteString -> m ()
- getChar :: m Char
- getLine :: m String
- getContents' :: m String
- getTerminalSize :: (HasCallStack, Integral a) => m (Window a)
- supportsPretty :: m Bool
- print :: (HasCallStack, MonadTerminal m, Show a) => a -> m ()
- putText :: (HasCallStack, MonadTerminal m) => Text -> m ()
- putTextLn :: (HasCallStack, MonadTerminal m) => Text -> m ()
- getTextLine :: (HasCallStack, MonadTerminal m) => m Text
- getTextContents' :: (HasCallStack, MonadTerminal m) => m Text
- getTerminalWidth :: (HasCallStack, Integral a, MonadTerminal m) => m a
- getTerminalHeight :: (HasCallStack, Integral a, MonadTerminal m) => m a
- data Natural
- data Window a = Window {}
- data Text
Effect
class Monad m => MonadTerminal (m :: Type -> Type) where Source #
Represents a terminal.
Since: 0.1
Minimal complete definition
putStr, putBinary, getChar, getLine, getContents', getTerminalSize, supportsPretty
Methods
putStr :: String -> m () Source #
Lifted putStr
.
Since: 0.1
putStrLn :: String -> m () Source #
Lifted putStrLn
.
Since: 0.1
putBinary :: ByteString -> m () Source #
Lifted putStr
.
Since: 0.1
Lifted getChar
.
Since: 0.1
Lifted getLine
.
Since: 0.1
getContents' :: m String Source #
Lifted getContents'
.
Since: 0.1
getTerminalSize :: (HasCallStack, Integral a) => m (Window a) Source #
Retrieves the terminal size.
Since: 0.1
supportsPretty :: m Bool Source #
Lifted supportsPretty
.
Since: 0.1
Instances
MonadTerminal IO Source # | Since: 0.1 |
MonadTerminal m => MonadTerminal (ReaderT e m) Source # | Since: 0.1 |
Defined in Effects.System.Terminal Methods putStr :: String -> ReaderT e m () Source # putStrLn :: String -> ReaderT e m () Source # putBinary :: ByteString -> ReaderT e m () Source # getChar :: ReaderT e m Char Source # getLine :: ReaderT e m String Source # getContents' :: ReaderT e m String Source # getTerminalSize :: (HasCallStack, Integral a) => ReaderT e m (Window a) Source # supportsPretty :: ReaderT e m Bool Source # |
Functions
print :: (HasCallStack, MonadTerminal m, Show a) => a -> m () Source #
Text
putText :: (HasCallStack, MonadTerminal m) => Text -> m () Source #
putTextLn :: (HasCallStack, MonadTerminal m) => Text -> m () Source #
getTextLine :: (HasCallStack, MonadTerminal m) => m Text Source #
getTextContents' :: (HasCallStack, MonadTerminal m) => m Text Source #
Text
version of getContents'
.
Since: 0.1
Window
getTerminalWidth :: (HasCallStack, Integral a, MonadTerminal m) => m a Source #
Retrieves the terminal width.
Since: 0.1
getTerminalHeight :: (HasCallStack, Integral a, MonadTerminal m) => m a Source #
Retrieves the terminal height.
Since: 0.1
Reexports
Natural number
Invariant: numbers <= 0xffffffffffffffff use the NS
constructor
Instances
Data Natural | Since: base-4.8.0.0 |
Defined in Data.Data Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Natural -> c Natural # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Natural # toConstr :: Natural -> Constr # dataTypeOf :: Natural -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Natural) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Natural) # gmapT :: (forall b. Data b => b -> b) -> Natural -> Natural # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Natural -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Natural -> r # gmapQ :: (forall d. Data d => d -> u) -> Natural -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Natural -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Natural -> m Natural # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Natural -> m Natural # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Natural -> m Natural # | |
Bits Natural | Since: base-4.8.0 |
Defined in GHC.Bits Methods (.&.) :: Natural -> Natural -> Natural # (.|.) :: Natural -> Natural -> Natural # xor :: Natural -> Natural -> Natural # complement :: Natural -> Natural # shift :: Natural -> Int -> Natural # rotate :: Natural -> Int -> Natural # setBit :: Natural -> Int -> Natural # clearBit :: Natural -> Int -> Natural # complementBit :: Natural -> Int -> Natural # testBit :: Natural -> Int -> Bool # bitSizeMaybe :: Natural -> Maybe Int # shiftL :: Natural -> Int -> Natural # unsafeShiftL :: Natural -> Int -> Natural # shiftR :: Natural -> Int -> Natural # unsafeShiftR :: Natural -> Int -> Natural # rotateL :: Natural -> Int -> Natural # | |
Enum Natural | Since: base-4.8.0.0 |
Ix Natural | Since: base-4.8.0.0 |
Defined in GHC.Ix | |
Num Natural | Note that Since: base-4.8.0.0 |
Read Natural | Since: base-4.8.0.0 |
Integral Natural | Since: base-4.8.0.0 |
Defined in GHC.Real | |
Real Natural | Since: base-4.8.0.0 |
Defined in GHC.Real Methods toRational :: Natural -> Rational # | |
Show Natural | Since: base-4.8.0.0 |
PrintfArg Natural | Since: base-4.8.0.0 |
Defined in Text.Printf | |
NFData Natural | Since: deepseq-1.4.0.0 |
Defined in Control.DeepSeq | |
Eq Natural | |
Ord Natural | |
KnownNat n => HasResolution (n :: Nat) | For example, |
Defined in Data.Fixed Methods resolution :: p n -> Integer # | |
TestCoercion SNat | Since: base-4.18.0.0 |
Defined in GHC.TypeNats | |
TestEquality SNat | Since: base-4.18.0.0 |
Defined in GHC.TypeNats | |
Lift Natural | |
type Compare (a :: Natural) (b :: Natural) | |
Defined in Data.Type.Ord |
Terminal window width and height
Instances
Foldable Window | |||||
Defined in System.Console.Terminal.Common Methods fold :: Monoid m => Window m -> m # foldMap :: Monoid m => (a -> m) -> Window a -> m # foldMap' :: Monoid m => (a -> m) -> Window a -> m # foldr :: (a -> b -> b) -> b -> Window a -> b # foldr' :: (a -> b -> b) -> b -> Window a -> b # foldl :: (b -> a -> b) -> b -> Window a -> b # foldl' :: (b -> a -> b) -> b -> Window a -> b # foldr1 :: (a -> a -> a) -> Window a -> a # foldl1 :: (a -> a -> a) -> Window a -> a # elem :: Eq a => a -> Window a -> Bool # maximum :: Ord a => Window a -> a # minimum :: Ord a => Window a -> a # | |||||
Traversable Window | |||||
Functor Window | |||||
Generic1 Window | |||||
Defined in System.Console.Terminal.Common Associated Types
| |||||
Data a => Data (Window a) | |||||
Defined in System.Console.Terminal.Common Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Window a -> c (Window a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Window a) # toConstr :: Window a -> Constr # dataTypeOf :: Window a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Window a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Window a)) # gmapT :: (forall b. Data b => b -> b) -> Window a -> Window a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Window a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Window a -> r # gmapQ :: (forall d. Data d => d -> u) -> Window a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Window a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Window a -> m (Window a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Window a -> m (Window a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Window a -> m (Window a) # | |||||
Generic (Window a) | |||||
Defined in System.Console.Terminal.Common Associated Types
| |||||
Read a => Read (Window a) | |||||
Show a => Show (Window a) | |||||
Eq a => Eq (Window a) | |||||
type Rep1 Window | |||||
Defined in System.Console.Terminal.Common type Rep1 Window = D1 ('MetaData "Window" "System.Console.Terminal.Common" "terminal-size-0.3.4-H5Uq7JNeWYRHaIwIhePN7K" 'False) (C1 ('MetaCons "Window" 'PrefixI 'True) (S1 ('MetaSel ('Just "height") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) Par1 :*: S1 ('MetaSel ('Just "width") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) Par1)) | |||||
type Rep (Window a) | |||||
Defined in System.Console.Terminal.Common type Rep (Window a) = D1 ('MetaData "Window" "System.Console.Terminal.Common" "terminal-size-0.3.4-H5Uq7JNeWYRHaIwIhePN7K" 'False) (C1 ('MetaCons "Window" 'PrefixI 'True) (S1 ('MetaSel ('Just "height") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a) :*: S1 ('MetaSel ('Just "width") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a))) |