Safe Haskell | None |
---|---|
Language | Haskell2010 |
This libraries provides a polysemy effect that provides interactive command line usage.
Synopsis
- data Readline (m :: * -> *) a where
- GetInputLine :: String -> Readline m (Maybe String)
- GetInputLineWithInitial :: String -> (String, String) -> Readline m (Maybe String)
- GetInputChar :: String -> Readline m (Maybe Char)
- GetPassword :: Maybe Char -> String -> Readline m (Maybe String)
- WaitForAnyKey :: String -> Readline m Bool
- OutputStr :: String -> Readline m ()
- getInputLine :: forall r. MemberWithError Readline r => String -> Sem r (Maybe String)
- getInputLineWithInitial :: forall r. MemberWithError Readline r => String -> (String, String) -> Sem r (Maybe String)
- getInputChar :: forall r. MemberWithError Readline r => String -> Sem r (Maybe Char)
- getPassword :: forall r. MemberWithError Readline r => Maybe Char -> String -> Sem r (Maybe String)
- waitForAnyKey :: forall r. MemberWithError Readline r => String -> Sem r Bool
- outputStr :: forall r. MemberWithError Readline r => String -> Sem r ()
- outputStrLn :: Member Readline r => String -> Sem r ()
- runReadline :: forall m r a. (MonadIO m, MonadMask m, Member (Embed m) r) => Settings m -> Sem (Readline ': r) a -> Sem r a
- interpretReadlineAsInputT :: forall m r a. (MonadIO m, MonadMask m, Member (Embed (InputT m)) r) => Sem (Readline ': r) a -> Sem r a
- data Settings (m :: Type -> Type)
- defaultSettings :: forall (m :: Type -> Type). MonadIO m => Settings m
Effect and Actions
data Readline (m :: * -> *) a where Source #
For documentation on actions see haskeline's functions with the same name and similar type signatures.
GetInputLine :: String -> Readline m (Maybe String) | |
GetInputLineWithInitial :: String -> (String, String) -> Readline m (Maybe String) | |
GetInputChar :: String -> Readline m (Maybe Char) | |
GetPassword :: Maybe Char -> String -> Readline m (Maybe String) | |
WaitForAnyKey :: String -> Readline m Bool | |
OutputStr :: String -> Readline m () |
getInputLine :: forall r. MemberWithError Readline r => String -> Sem r (Maybe String) Source #
getInputLineWithInitial :: forall r. MemberWithError Readline r => String -> (String, String) -> Sem r (Maybe String) Source #
getInputChar :: forall r. MemberWithError Readline r => String -> Sem r (Maybe Char) Source #
getPassword :: forall r. MemberWithError Readline r => Maybe Char -> String -> Sem r (Maybe String) Source #
waitForAnyKey :: forall r. MemberWithError Readline r => String -> Sem r Bool Source #
Interpreters
runReadline :: forall m r a. (MonadIO m, MonadMask m, Member (Embed m) r) => Settings m -> Sem (Readline ': r) a -> Sem r a Source #
The standard way to run a Readline effect. Should be sufficient for most use cases. If you want to modify the Behavior or Prefs of InputT use interpretReadlineAsInputT instead.
interpretReadlineAsInputT :: forall m r a. (MonadIO m, MonadMask m, Member (Embed (InputT m)) r) => Sem (Readline ': r) a -> Sem r a Source #
Interpret in terms of an embedded InputT
stack.
Re-exports from haskeline
data Settings (m :: Type -> Type) #
Application-specific customizations to the user interface.
Instances
(MonadIO m, MonadMask m) => CommandMonad (InputCmdT m) | |
Defined in System.Console.Haskeline.InputT runCompletion :: (String, String) -> InputCmdT m (String, [Completion]) |