Jz>      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None@Either a key on the keyboard, or a mouse button or scroll wheel.fNote that the scroll wheel is treated as two mouse buttons: one scrolling up, and one scrolling down.None  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None7Return a structure mapping each keycode to its keysyms.Like  , but calls error instead of returning Left.)Split the input list into chunks of size ki. The last chunk may be shorter than the other chunks, depending on the length of the input. Exammples: mchunksOf 2 [1..6] == [[1, 2], [3, 4], [5, 6]] chunksOf 3 "Hello, world!" == ["Hel", "lo,", " wo", "rld", "!"]4Return a structure mapping keysyms to their keycode.  None   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ NoneBA Robot* is a program that interacts with the GUI.Use  to execute your Robot, and  to perform arbitrary I/O.7Run the robot, connecting to the display automatically.+Run the robot using an existing connection.Connect to the X11 server.clipIntegral x :: T converts the value x to type T#. If the argument does not fit in T6, it is clipped, rather than wrapping around as with . NoneNone 7Represents things that can be pressed: either a single  or a list of es.Press a key or button.Release a key or button. hold x act holds down x while executing act. It is equivalent to: press x >> act >> release x except holdE ensures that the argument is released in the event of an exception.Move the pointer by an offset.*Move the pointer to a point on the screen.$Press the argument, then release it.Note that the underlying events are fired very quickly; much faster than some applications (such as Xmonad) can handle. If this becomes an issue, you may introduce a delay using : slowTap x = x `hold` sleep 0.1 /Do nothing for the specified number of seconds.?Press items from left-to-right, but release from right-to-left.6This behavior ensures the following equivalence holds: ^press xs >> act >> release xs === xs `hold` act === x1 `hold` x2 `hold` ... xn `hold` act   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ robot-1.4Test.Robot.TypesTest.Robot.Internal.XTestTest.Robot.Internal Test.RobotTest.Robot.Types.CoreTest.Robot.Types.KeysTest.Robot.ConnectionSwitchButtonKey _Backspace_Tab _LineFeed_Clear_Return_Pause _ScrollLock_SysReq_Escape_Delete_Home_Left_Up_Right_Down_Prior_PageUp_Next _PageDown_End_Begin_Select_Print_Execute_Insert_Undo_Redo_Menu_Find_Cancel_Help_Break _ModeSwitch _ScriptSwitch_NumLock _KP_Space_KP_Tab _KP_Enter_KP_F1_KP_F2_KP_F3_KP_F4_KP_Home_KP_Left_KP_Up _KP_Right_KP_Down _KP_Prior _KP_PageUp_KP_Next _KP_PageDown_KP_End _KP_Begin _KP_Insert _KP_Delete _KP_Multiply_KP_Add _KP_Separator _KP_Subtract _KP_Decimal _KP_Divide _KP_Equal_KP_0_KP_1_KP_2_KP_3_KP_4_KP_5_KP_6_KP_7_KP_8_KP_9_F1_F2_F3_F4_F5_F6_F7_F8_F9_F10_F11_F12_F13_F14_F15_F16_F17_F18_F19_Shift_Shift_L_Shift_R_Ctrl_Control _Control_L _Control_R _CapsLock _ShiftLock_Meta_Meta_L_Meta_R_Alt_Alt_L_Alt_R_Super_Super_L_Super_R_Hyper_Hyper_L_Hyper_R_Space _Exclamation _Quotation _NumberSign_Dollar_Percent _Ampersand _Apostrophe _ParenLeft _ParenRight _Asterisk_Plus_Comma_Minus_Period_Slash_0_1_2_3_4_5_6_7_8_9_Colon _Semicolon_Less_Equal_Greater _Question_At_A_B_C_D_E_F_G_H_I_J_K_L_M_N_O_P_Q_R_S_T_U_V_W_X_Y_Z _BracketLeft _Backslash _BracketRight _Circumflex _Underscore_Grave _BraceLeft_Bar _BraceRight_Tildekeyboardbuttonmotion getKeysymMap leftButton middleButton rightButtonscrollUp scrollDown scrollLeft scrollRight backButton forwardButtonRobotunRobotrunRobot runRobotWithconnectmkRobotmkRobot'switch PressablepressreleaseholdmoveBymoveTotapsleepgetKeyboardMap getReply'xhb-0.5.2014.4.10Graphics.XHB.SharedgetReplychunksOfnoWindow flipTable keycodeRangetransformers-0.4.2.0Control.Monad.IO.ClassliftIO clipIntegralbaseGHC.Real fromIntegralwidennarrow $fPressable[]$fPressableSwitch