Safe Haskell | None |
---|---|
Language | Haskell2010 |
- newtype ExecuteWorkflow = ExecuteWorkflow {
- getExecuteWorkflow :: forall n x. MonadIO n => WorkflowT n x -> n x
- data WorkflowD m = WorkflowD {
- _sendKeyChord :: [Modifier] -> Key -> m ()
- _sendText :: String -> m ()
- _sendMouseClick :: [Modifier] -> Natural -> MouseButton -> m ()
- _sendMouseScroll :: [Modifier] -> MouseScroll -> Natural -> m ()
- _getClipboard :: m Clipboard
- _setClipboard :: Clipboard -> m ()
- _currentApplication :: m Application
- _openApplication :: Application -> m ()
- _openURL :: URL -> m ()
- runWorkflowByT :: forall m a. MonadIO m => WorkflowD m -> WorkflowT m a -> m a
- delayMilliseconds :: MonadIO m => Int -> m ()
- delaySeconds :: MonadIO m => Int -> m ()
Documentation
newtype ExecuteWorkflow Source #
a function that can exectue any workflow, via IO.
ExecuteWorkflow | |
|
An explicit "typeclass dictionary" for interpreting a MonadWorkflow
.
i.e. a generic handler/interpreter (product type)
for WorkflowF
effects (a sum type).
e.g.
WorkflowD IO
template:
myDictionary :: (MonadIO m) => WorkflowD m myDictionary = WorkflowD{..} where _sendKeyChord = _sendText = _sendMouseClick = _sendMouseScroll = _getClipboard = _setClipboard = _currentApplication = _openApplication = _openURL = runWorkflowByMy :: (MonadIO m) => WorkflowT m a -> m a runWorkflowByMy = runWorkflowByT myDictionary
Delay
is elided, as its implementation can use
cross-platform IO
(threadDelay
).
see runWorkflowByT
WorkflowD | |
|
runWorkflowByT :: forall m a. MonadIO m => WorkflowD m -> WorkflowT m a -> m a Source #
e.g.
shellDictionary :: WorkflowD IO shellDictionary = WorkflowD{..} where_getClipboard
= shell $ "pbpaste"_setClipboard
s = shell $ "echo "++(shellEscape s)++"| pbcopy" >> return () ... runWorkflowByShell :: (MonadIO m) =>WorkflowT
m a -> m a runWorkflowByShell = runWorkflowByT shellDictionary -- specializeable: -- runWorkflowByShell ::Workflow
a -> IO a
delayMilliseconds :: MonadIO m => Int -> m () Source #
delaySeconds :: MonadIO m => Int -> m () Source #