pianola-0.1.0: Remotely controlling Java Swing applications

Safe HaskellNone

Pianola.Internal

Description

This module should not be imported by clients unless for the purpose of extending the library.

The constructors of the data types defined in this module are meant to be hidden from the client.

Synopsis

Documentation

newtype Nullipotent m a Source

Wraps a monad in order to tag those operations which don't actually change the state of the remote system. For example: taking a screenshot doesn't change the state of a GUI, as opposed to clicking a button.

Constructors

Nullipotent 

Fields

runNullipotent :: m a
 

Instances

Monad m => Monad (Nullipotent m) 
Functor m => Functor (Nullipotent m) 
Foldable m => Foldable (Nullipotent m) 
Traversable m => Traversable (Nullipotent m) 
Eq (m a) => Eq (Nullipotent m a) 
Ord (m a) => Ord (Nullipotent m a) 
Read (m a) => Read (Nullipotent m a) 
Show (m a) => Show (Nullipotent m a) 

data Sealed m Source

Encapsulates a monadic action so that clients can't manipulate it in any way, only dispatch it to some function.

There may be tags attached that describe the action. Clients should be able to inspect the tags.

Constructors

Sealed 

Fields

tags :: [Tag]
 
unseal :: m ()