J>      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None A mouse button or scroll wheel. CNote that the scroll wheel is treated as two separate buttons: one ' scrolling up, and one scrolling down. 2Retrieve the internal identifier for this button. A key on the keyboard. /Retrieve the internal identifier for this key. None  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~NoneDRelease all the keys and buttons, in case some were left held down. 8Return a structure mapping each keycode to its keysyms. Like  , but calls error instead of returning Left. )Split the input list into chunks of size k. The last chunk may be F shorter than the other chunks, depending on the length of the input.  Exammples: / chunksOf 2 [1..6] == [[1, 2], [3, 4], [5, 6]] A chunksOf 3 "Hello, world!" == ["Hel", "lo,", " wo", "rld", "!"] 5Return a structure mapping keysyms to their keycode.  None   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ None)The Robot monad: a reader monad over IO. 8Run the robot, connecting to the display automatically. ,Run the robot using an existing connection. clipIntegral x :: T converts the value x to type T. ! If the argument does not fit in T, it is clipped, rather than  wrapping around as with . DThe range of the result type must be a subset of the argument type. 5 If not, the behavior of this function is undefined. DRelease all the keys and buttons, in case some were left held down. % This is called automatically before  returns. NoneBRepresents things that can be pressed: either a key on a keyboard  or a button on a mouse. Press a key or button. Release a key or button. Move the pointer by an offset. +Move the pointer to a point on the screen.  hold x act holds down x while executing act. It is equivalent  to the code:    press x  act  release x 3For example, you type some text in ALL CAPS using:  , hold _Shift $ mapM_ tap [_D, _U, _C, _K, _S] %Press the argument, then release it. 0Do nothing for the specified number of seconds.   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  robot-1.0Test.Robot.TypesTest.Robot.Internal.XTestTest.Robot.Internal Test.RobotTest.Robot.Types.CoreTest.Robot.Types.KeysButton rawButtonKeyrawKey _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 releaseAll getKeysymMap customKey customButton leftButton middleButton rightButtonscrollUp scrollDown scrollLeft scrollRight backButton forwardButtonRobotunRobotrunRobotrunRobotWithConnectionmkRobotmkRobot' bracketRobot_ PressablepressreleasemoveBymoveToholdtapsleepgetKeyboardMap getReply'xhb-0.5.2012.11.23Graphics.XHB.SharedgetReplychunksOfnoWindow flipTable keycodeRange clipIntegralbaseGHC.Real fromIntegral$fPressableButton$fPressableKey