hinit-0.2.2: Generic project initialization tool
Safe HaskellNone
LanguageHaskell2010

Control.Effect.Terminal

Documentation

data Terminal (m :: Type -> Type) a where Source #

Constructors

PrettyPrint :: Handle -> Doc AnsiStyle -> Terminal m () 
Prompt :: String -> Terminal m (Maybe Text) 

Instances

Instances details
(MonadMask m, MonadIO m, Algebra sig m) => Algebra (Terminal :+: sig) (TerminalC m) Source # 
Instance details

Defined in Control.Effect.Terminal

Methods

alg :: forall ctx (n :: Type -> Type) a. Functor ctx => Handler ctx n (TerminalC m) -> (Terminal :+: sig) n a -> ctx () -> TerminalC m (ctx a) #

prompt :: Has Terminal sig m => String -> m (Maybe Text) Source #

newtype TerminalC m a Source #

Constructors

TerminalC 

Fields

Instances

Instances details
Monad m => Monad (TerminalC m) Source # 
Instance details

Defined in Control.Effect.Terminal

Methods

(>>=) :: TerminalC m a -> (a -> TerminalC m b) -> TerminalC m b #

(>>) :: TerminalC m a -> TerminalC m b -> TerminalC m b #

return :: a -> TerminalC m a #

Functor m => Functor (TerminalC m) Source # 
Instance details

Defined in Control.Effect.Terminal

Methods

fmap :: (a -> b) -> TerminalC m a -> TerminalC m b #

(<$) :: a -> TerminalC m b -> TerminalC m a #

Applicative m => Applicative (TerminalC m) Source # 
Instance details

Defined in Control.Effect.Terminal

Methods

pure :: a -> TerminalC m a #

(<*>) :: TerminalC m (a -> b) -> TerminalC m a -> TerminalC m b #

liftA2 :: (a -> b -> c) -> TerminalC m a -> TerminalC m b -> TerminalC m c #

(*>) :: TerminalC m a -> TerminalC m b -> TerminalC m b #

(<*) :: TerminalC m a -> TerminalC m b -> TerminalC m a #

MonadIO m => MonadIO (TerminalC m) Source # 
Instance details

Defined in Control.Effect.Terminal

Methods

liftIO :: IO a -> TerminalC m a #

(MonadMask m, MonadIO m, Algebra sig m) => Algebra (Terminal :+: sig) (TerminalC m) Source # 
Instance details

Defined in Control.Effect.Terminal

Methods

alg :: forall ctx (n :: Type -> Type) a. Functor ctx => Handler ctx n (TerminalC m) -> (Terminal :+: sig) n a -> ctx () -> TerminalC m (ctx a) #

runTerminal' :: (MonadIO m, MonadMask m) => Settings m -> TerminalC m a -> m a Source #

runTerminal :: (MonadIO m, MonadMask m) => TerminalC m a -> m a Source #