terminal-effectful-0.1: Terminal effects
Safe HaskellNone
LanguageGHC2021

Effectful.Terminal.Static

Description

Provides a static terminal effect.

Since: 0.1

Synopsis

Effect

data Terminal (a :: Type -> Type) b Source #

Static terminal effect.

Since: 0.1

Instances

Instances details
type DispatchOf Terminal Source # 
Instance details

Defined in Effectful.Terminal.Static

data StaticRep Terminal Source # 
Instance details

Defined in Effectful.Terminal.Static

putStr :: forall (es :: [Effect]). (HasCallStack, Terminal :> es) => String -> Eff es () Source #

Lifted putStr.

Since: 0.1

putStrLn :: forall (es :: [Effect]). (HasCallStack, Terminal :> es) => String -> Eff es () Source #

Lifted putStrLn.

Since: 0.1

putBinary :: forall (es :: [Effect]). (HasCallStack, Terminal :> es) => ByteString -> Eff es () Source #

Lifted putStr.

Since: 0.1

getChar :: forall (es :: [Effect]). (HasCallStack, Terminal :> es) => Eff es Char Source #

Lifted getChar.

Since: 0.1

getLine :: forall (es :: [Effect]). (HasCallStack, Terminal :> es) => Eff es String Source #

Lifted getLine.

Since: 0.1

getContents' :: forall (es :: [Effect]). (HasCallStack, Terminal :> es) => Eff es String Source #

Lifted getContents'.

Since: 0.1

getTerminalSize :: forall a (es :: [Effect]). (HasCallStack, Integral a, Terminal :> es) => Eff es (Window a) Source #

Retrieves the terminal size.

Since: 0.1

supportsPretty :: forall (es :: [Effect]). (HasCallStack, Terminal :> es) => Eff es Bool Source #

Determines if we support ANSI styling.

Since: 0.1

Handlers

runTerminal :: forall (es :: [Effect]) a. (HasCallStack, IOE :> es) => Eff (Terminal ': es) a -> Eff es a Source #

Runs Terminal in IO.

Since: 0.1

Functions

print :: forall a (es :: [Effect]). (Show a, HasCallStack, Terminal :> es) => a -> Eff es () Source #

Since: 0.1

Text

putText :: forall (es :: [Effect]). (HasCallStack, Terminal :> es) => Text -> Eff es () Source #

Text version of putStr.

Since: 0.1

putTextLn :: forall (es :: [Effect]). (HasCallStack, Terminal :> es) => Text -> Eff es () Source #

Text version of putStrLn.

Since: 0.1

getTextLine :: forall (es :: [Effect]). (HasCallStack, Terminal :> es) => Eff es Text Source #

Since: 0.1

getTextContents' :: forall (es :: [Effect]). (HasCallStack, Terminal :> es) => Eff es Text Source #

Since: 0.1

Window

getTerminalWidth :: forall a (es :: [Effect]). (HasCallStack, Integral a, Terminal :> es) => Eff es a Source #

Retrieves the terminal width.

Since: 0.1

getTerminalHeight :: forall a (es :: [Effect]). (HasCallStack, Integral a, Terminal :> es) => Eff es a Source #

Retrieves the terminal height.

Since: 0.1

Re-exports

data Window a Source #

Terminal window width and height

Constructors

Window 

Fields

Instances

Instances details
Functor Window 
Instance details

Defined in System.Console.Terminal.Common

Methods

fmap :: (a -> b) -> Window a -> Window b #

(<$) :: a -> Window b -> Window a #

Foldable Window 
Instance details

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 #

toList :: Window a -> [a] #

null :: Window a -> Bool #

length :: Window a -> Int #

elem :: Eq a => a -> Window a -> Bool #

maximum :: Ord a => Window a -> a #

minimum :: Ord a => Window a -> a #

sum :: Num a => Window a -> a #

product :: Num a => Window a -> a #

Traversable Window 
Instance details

Defined in System.Console.Terminal.Common

Methods

traverse :: Applicative f => (a -> f b) -> Window a -> f (Window b) #

sequenceA :: Applicative f => Window (f a) -> f (Window a) #

mapM :: Monad m => (a -> m b) -> Window a -> m (Window b) #

sequence :: Monad m => Window (m a) -> m (Window a) #

Generic1 Window 
Instance details

Defined in System.Console.Terminal.Common

Associated Types

type Rep1 Window 
Instance details

Defined in System.Console.Terminal.Common

type Rep1 Window = D1 ('MetaData "Window" "System.Console.Terminal.Common" "terminal-size-0.3.4-EKN80GNpQGnBy3a2XJUeTh" 'False) (C1 ('MetaCons "Window" 'PrefixI 'True) (S1 ('MetaSel ('Just "height") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) Par1 :*: S1 ('MetaSel ('Just "width") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) Par1))

Methods

from1 :: Window a -> Rep1 Window a #

to1 :: Rep1 Window a -> Window a #

Data a => Data (Window a) 
Instance details

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) 
Instance details

Defined in System.Console.Terminal.Common

Associated Types

type Rep (Window a) 
Instance details

Defined in System.Console.Terminal.Common

type Rep (Window a) = D1 ('MetaData "Window" "System.Console.Terminal.Common" "terminal-size-0.3.4-EKN80GNpQGnBy3a2XJUeTh" 'False) (C1 ('MetaCons "Window" 'PrefixI 'True) (S1 ('MetaSel ('Just "height") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a) :*: S1 ('MetaSel ('Just "width") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a)))

Methods

from :: Window a -> Rep (Window a) x #

to :: Rep (Window a) x -> Window a #

Read a => Read (Window a) 
Instance details

Defined in System.Console.Terminal.Common

Show a => Show (Window a) 
Instance details

Defined in System.Console.Terminal.Common

Methods

showsPrec :: Int -> Window a -> ShowS #

show :: Window a -> String #

showList :: [Window a] -> ShowS #

Eq a => Eq (Window a) 
Instance details

Defined in System.Console.Terminal.Common

Methods

(==) :: Window a -> Window a -> Bool #

(/=) :: Window a -> Window a -> Bool #

type Rep1 Window 
Instance details

Defined in System.Console.Terminal.Common

type Rep1 Window = D1 ('MetaData "Window" "System.Console.Terminal.Common" "terminal-size-0.3.4-EKN80GNpQGnBy3a2XJUeTh" '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) 
Instance details

Defined in System.Console.Terminal.Common

type Rep (Window a) = D1 ('MetaData "Window" "System.Console.Terminal.Common" "terminal-size-0.3.4-EKN80GNpQGnBy3a2XJUeTh" 'False) (C1 ('MetaCons "Window" 'PrefixI 'True) (S1 ('MetaSel ('Just "height") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a) :*: S1 ('MetaSel ('Just "width") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a)))

data Text #

A space efficient, packed, unboxed Unicode text type.

Instances

Instances details
Pretty Text

Instance of Pretty for Text

Instance details

Defined in System.Console.Pretty

type Item Text 
Instance details

Defined in Data.Text

type Item Text = Char