type bitmap = BitmapFile of string (* path of file *) | Predefined of string (* bitmap name *) ;; type color = NamedColor of string | Black (* tk keyword: black *) | White (* tk keyword: white *) | Red (* tk keyword: red *) | Green (* tk keyword: green *) | Blue (* tk keyword: blue *) | Yellow (* tk keyword: yellow *) ;; type cursor = XCursor of string | XCursorFg of string * color | XCursortFgBg of string * color * color | CursorFileFg of string * color | CursorMaskFile of string * string * color * color ;; type units = Pixels of int (* specified as floating-point, but inconvenient *) | Centimeters of float | Inches of float | Millimeters of float | PrinterPoint of float ;; type scrollValue = ScrollPage of int (* tk option: scroll <int> page *) | ScrollUnit of int (* tk option: scroll <int> unit *) | MoveTo of float (* tk option: moveto <float> *) ;; type xEvent = ButtonPress (* also Button, but we omit it *) | ButtonPressDetail of int | ButtonRelease | ButtonReleaseDetail of int | Circulate | ColorMap | Configure | Destroy | Enter | Expose | FocusIn | FocusOut | Gravity | KeyPress (* also Key, but we omit it *) | KeyPressDetail of string (* /usr/include/X11/keysymdef.h *) | KeyRelease | KeyReleaseDetail of string | Leave | Map | Motion | Property | Reparent | Unmap | Visibility ;; type modifier = Control | Shift | Lock | Button1 | Button2 | Button3 | Button4 | Button5 | Double | Triple | Mod1 | Mod2 | Mod3 | Mod4 | Mod5 | Meta | Alt ;; type eventInfo = { mutable ev_Above : int; (* tk: %a *) mutable ev_ButtonNumber : int; (* tk: %b *) mutable ev_Count : int; (* tk: %c *) mutable ev_Detail : string; (* tk: %d *) mutable ev_Focus : bool; (* tk: %f *) mutable ev_Height : int; (* tk: %h *) mutable ev_KeyCode : int; (* tk: %k *) mutable ev_Mode : string; (* tk: %m *) mutable ev_OverrideRedirect : bool; (* tk: %o *) mutable ev_Place : string; (* tk: %p *) mutable ev_State : string; (* tk: %s *) mutable ev_Time : int; (* tk: %t *) mutable ev_Width : int; (* tk: %w *) mutable ev_MouseX : int; (* tk: %x *) mutable ev_MouseY : int; (* tk: %y *) mutable ev_Char : string; (* tk: %A *) mutable ev_BorderWidth : int; (* tk: %B *) mutable ev_SendEvent : bool; (* tk: %E *) mutable ev_KeySymString : string; (* tk: %K *) mutable ev_KeySymInt : int; (* tk: %N *) mutable ev_RootWindow : int; (* tk: %R *) mutable ev_SubWindow : int; (* tk: %S *) mutable ev_Type : int; (* tk: %T *) mutable ev_Widget : widget; (* tk: %W *) mutable ev_RootX : int; (* tk: %X *) mutable ev_RootY : int (* tk: %Y *) } ;; type eventField = Ev_Above | Ev_ButtonNumber | Ev_Count | Ev_Detail | Ev_Focus | Ev_Height | Ev_KeyCode | Ev_Mode | Ev_OverrideRedirect | Ev_Place | Ev_State | Ev_Time | Ev_Width | Ev_MouseX | Ev_MouseY | Ev_Char | Ev_BorderWidth | Ev_SendEvent | Ev_KeySymString | Ev_KeySymInt | Ev_RootWindow | Ev_SubWindow | Ev_Type | Ev_Widget | Ev_RootX | Ev_RootY ;; type bindAction = BindSet of eventField list * (eventInfo -> unit) | BindSetBreakable of eventField list * (eventInfo -> unit) | BindRemove | BindExtend of eventField list * (eventInfo -> unit) ;; type bindings = TagBindings of string (* tk option: <string> *) | WidgetBindings of widget (* tk option: <widget> *) ;; type index = Number of int (* no keyword *) | ActiveElement (* tk keyword: active *) | End (* tk keyword: end *) | Last (* tk keyword: last *) | NoIndex (* tk keyword: none *) | Insert (* tk keyword: insert *) | SelFirst (* tk keyword: sel.first *) | SelLast (* tk keyword: sel.last *) | At of int (* tk keyword: @n *) | AtXY of int * int (* tk keyword: @x,y *) | AnchorPoint (* tk keyword: anchor *) | Pattern of string (* no keyword *) | LineChar of int * int (* tk keyword: l.c *) | Mark of string (* no keyword *) | TagFirst of string (* tk keyword: tag.first *) | TagLast of string (* tk keyword: tag.last *) | Embedded of widget (* no keyword *) ;; type paletteType = GrayShades of int | RGBShades of int * int * int ;; type textMark == string ;; type textTag == string ;; type textModifier = CharOffset of int (* tk keyword: +/- Xchars *) | LineOffset of int (* tk keyword: +/- Xlines *) | LineStart (* tk keyword: linestart *) | LineEnd (* tk keyword: lineend *) | WordStart (* tk keyword: wordstart *) | WordEnd (* tk keyword: wordend *) ;; type textIndex = TextIndex of index * textModifier list | TextIndexNone ;; type relief = Flat (* tk option: flat *) | Groove (* tk option: groove *) | Raised (* tk option: raised *) | Ridge (* tk option: ridge *) | Sunken (* tk option: sunken *) ;; type orientation = Horizontal (* tk option: horizontal *) | Vertical (* tk option: vertical *) ;; type justification = Justify_Center (* tk option: center *) | Justify_Left (* tk option: left *) | Justify_Right (* tk option: right *) ;; type imagePhoto = PhotoImage of string (* tk option: [string] *) ;; type imageBitmap = BitmapImage of string (* tk option: [string] *) ;; type anchor = Center (* tk option: center *) | E (* tk option: e *) | N (* tk option: n *) | NE (* tk option: ne *) | NW (* tk option: nw *) | S (* tk option: s *) | SE (* tk option: se *) | SW (* tk option: sw *) | W (* tk option: w *) ;; type state = Active (* tk option: active *) | Disabled (* tk option: disabled *) | Normal (* tk option: normal *) ;; type colorMode = Color (* tk option: color *) | Gray (* tk option: gray *) | Mono (* tk option: mono *) ;; type tagOrId = Id of int (* tk option: [int] *) | Tag of string (* tk option: [string] *) ;; type arcStyle = Arc (* tk option: arc *) | Chord (* tk option: chord *) | PieSlice (* tk option: pieslice *) ;; type joinStyle = Join_Bevel (* tk option: bevel *) | Join_Miter (* tk option: miter *) | Join_Round (* tk option: round *) ;; type capStyle = Cap_Butt (* tk option: butt *) | Cap_Projecting (* tk option: projecting *) | Cap_Round (* tk option: round *) ;; type arrowStyle = Arrow_Both (* tk option: both *) | Arrow_First (* tk option: first *) | Arrow_Last (* tk option: last *) | Arrow_None (* tk option: none *) ;; type colormap = NewColormap (* tk option: new *) | WidgetColormap of widget (* tk option: [widget] *) ;; type visual = Best (* tk option: best *) | BestDepth of int (* tk option: {best [int]} *) | ClassVisual of string * int (* tk option: {[string] [int]} *) | DefaultVisual (* tk option: default *) | WidgetVisual of widget (* tk option: [widget] *) ;; type selectModeType = Browse (* tk option: browse *) | Extended (* tk option: extended *) | Multiple (* tk option: multiple *) | Single (* tk option: single *) ;; type side = Side_Bottom (* tk option: bottom *) | Side_Left (* tk option: left *) | Side_Right (* tk option: right *) | Side_Top (* tk option: top *) ;; type fillMode = Fill_Both (* tk option: both *) | Fill_None (* tk option: none *) | Fill_X (* tk option: x *) | Fill_Y (* tk option: y *) ;; type borderMode = Ignore (* tk option: ignore *) | Inside (* tk option: inside *) | Outside (* tk option: outside *) ;; type alignType = Align_Baseline (* tk option: baseline *) | Align_Bottom (* tk option: bottom *) | Align_Center (* tk option: center *) | Align_Top (* tk option: top *) ;; type tabType = TabCenter of units (* tk option: [units] center *) | TabLeft of units (* tk option: [units] left *) | TabNumeric of units (* tk option: [units] numeric *) | TabRight of units (* tk option: [units] right *) ;; type wrapMode = WrapChar (* tk option: char *) | WrapNone (* tk option: none *) | WrapWord (* tk option: word *) ;; type options = Accelerator of string (* tk option: -accelerator [string] *) | ActiveBackground of color (* tk option: -activebackground [color] *) | ActiveBorderWidth of units (* tk option: -activeborderwidth [units] *) | ActiveForeground of color (* tk option: -activeforeground [color] *) | ActiveRelief of relief (* tk option: -activerelief [relief] *) | After of widget (* tk option: -after [widget] *) | Align of alignType (* tk option: -align [alignType] *) | Anchor of anchor (* tk option: -anchor [anchor] *) | ArcStyle of arcStyle (* tk option: -style [arcStyle] *) | ArrowShape of units * units * units (* tk option: -arrowshape {[units] [units] [units]} *) | ArrowStyle of arrowStyle (* tk option: -arrow [arrowStyle] *) | Aspect of int (* tk option: -aspect [int] *) | Background of color (* tk option: -background [color] *) | Before of widget (* tk option: -before [widget] *) | BgStipple of bitmap (* tk option: -bgstipple [bitmap] *) | BigIncrement of float (* tk option: -bigincrement [float] *) | Bitmap of bitmap (* tk option: -bitmap [bitmap] *) | BorderMode of borderMode (* tk option: -bordermode [borderMode] *) | BorderWidth of units (* tk option: -borderwidth [units] *) | CapStyle of capStyle (* tk option: -capstyle [capStyle] *) | Class of string (* tk option: -class [string] *) | CloseEnough of float (* tk option: -closeenough [float] *) | Colormap of colormap (* tk option: -colormap [colormap] *) | Colormode of colorMode (* tk option: -colormode [colorMode] *) | Command of (unit -> unit) (* tk option: -command [(unit -> unit)] *) | Confine of bool (* tk option: -confine [bool] *) | Cursor of cursor (* tk option: -cursor [cursor] *) | Data of string (* tk option: -data [string] *) | Digits of int (* tk option: -digits [int] *) | DisabledForeground of color (* tk option: -disabledforeground [color] *) | ElementBorderWidth of units (* tk option: -elementborderwidth [units] *) | Expand of bool (* tk option: -expand [bool] *) | ExportSelection of bool (* tk option: -exportselection [bool] *) | Extent of float (* tk option: -extent [float] *) | FgStipple of bitmap (* tk option: -fgstipple [bitmap] *) | File of string (* tk option: -file [string] *) | Fill of fillMode (* tk option: -fill [fillMode] *) | FillColor of color (* tk option: -fill [color] *) | Font of string (* tk option: -font [string] *) | Foreground of color (* tk option: -foreground [color] *) | Format of string (* tk option: -format [string] *) | From of float (* tk option: -from [float] *) | Gamma of float (* tk option: -gamma [float] *) | Geometry of string (* tk option: -geometry [string] *) | Height of units (* tk option: -height [units] *) | HighlightBackground of color (* tk option: -highlightbackground [color] *) | HighlightColor of color (* tk option: -highlightcolor [color] *) | HighlightThickness of units (* tk option: -highlightthickness [units] *) | IPadX of units (* tk option: -ipadx [units] *) | IPadY of units (* tk option: -ipady [units] *) | ImageBitmap of imageBitmap (* tk option: -image [imageBitmap] *) | ImagePhoto of imagePhoto (* tk option: -image [imagePhoto] *) | In of widget (* tk option: -in [widget] *) | IndicatorOn of bool (* tk option: -indicatoron [bool] *) | InsertBackground of color (* tk option: -insertbackground [color] *) | InsertBorderWidth of units (* tk option: -insertborderwidth [units] *) | InsertOffTime of int (* tk option: -insertofftime [int] *) | InsertOnTime of int (* tk option: -insertontime [int] *) | InsertWidth of units (* tk option: -insertwidth [units] *) | JoinStyle of joinStyle (* tk option: -joinstyle [joinStyle] *) | Jump of bool (* tk option: -jump [bool] *) | Justify of justification (* tk option: -justify [justification] *) | LMargin1 of units (* tk option: -lmargin1 [units] *) | LMargin2 of units (* tk option: -lmargin2 [units] *) | Label of string (* tk option: -label [string] *) | Length of units (* tk option: -length [units] *) | Maskdata of string (* tk option: -maskdata [string] *) | Maskfile of string (* tk option: -maskfile [string] *) | Menu of widget (* tk option: -menu [widget] *) | OffValue of string (* tk option: -offvalue [string] *) | Offset of units (* tk option: -offset [units] *) | OnValue of string (* tk option: -onvalue [string] *) | Orient of orientation (* tk option: -orient [orientation] *) | Outline of color (* tk option: -outline [color] *) | OutlineStipple of bitmap (* tk option: -outlinestipple [bitmap] *) | OverStrike of bool (* tk option: -overstrike [bool] *) | PadX of units (* tk option: -padx [units] *) | PadY of units (* tk option: -pady [units] *) | PageAnchor of anchor (* tk option: -pageanchor [anchor] *) | PageHeight of units (* tk option: -pageheight [units] *) | PageWidth of units (* tk option: -pagewidth [units] *) | PageX of units (* tk option: -pagex [units] *) | PageY of units (* tk option: -pagey [units] *) | Palette of paletteType (* tk option: -palette [paletteType] *) | PostCommand of (unit -> unit) (* tk option: -postcommand [(unit -> unit)] *) | RMargin of units (* tk option: -rmargin [units] *) | RelHeight of float (* tk option: -relheight [float] *) | RelWidth of float (* tk option: -relwidth [float] *) | RelX of float (* tk option: -relx [float] *) | RelY of float (* tk option: -rely [float] *) | Relief of relief (* tk option: -relief [relief] *) | RepeatDelay of int (* tk option: -repeatdelay [int] *) | RepeatInterval of int (* tk option: -repeatinterval [int] *) | Resolution of float (* tk option: -resolution [float] *) | Rotate of bool (* tk option: -rotate [bool] *) | ScaleCommand of (float -> unit) (* tk option: -command [(float -> unit)] *) | Screen of string (* tk option: -screen [string] *) | ScrollCommand of (scrollValue -> unit) (* tk option: -command [(scrollValue -> unit)] *) | ScrollRegion of units * units * units * units (* tk option: -scrollregion {[units] [units] [units] [units]} *) | SelectBackground of color (* tk option: -selectbackground [color] *) | SelectBorderWidth of units (* tk option: -selectborderwidth [units] *) | SelectColor of color (* tk option: -selectcolor [color] *) | SelectForeground of color (* tk option: -selectforeground [color] *) | SelectImageBitmap of imageBitmap (* tk option: -selectimage [imageBitmap] *) | SelectImagePhoto of imagePhoto (* tk option: -selectimage [imagePhoto] *) | SelectMode of selectModeType (* tk option: -selectmode [selectModeType] *) | SetGrid of bool (* tk option: -setgrid [bool] *) | Show of char (* tk option: -show [char] *) | ShowValue of bool (* tk option: -showvalue [bool] *) | Side of side (* tk option: -side [side] *) | SliderLength of units (* tk option: -sliderlength [units] *) | Smooth of bool (* tk option: -smooth [bool] *) | Spacing1 of units (* tk option: -spacing1 [units] *) | Spacing2 of units (* tk option: -spacing2 [units] *) | Spacing3 of units (* tk option: -spacing3 [units] *) | SplineSteps of int (* tk option: -splinesteps [int] *) | Start of float (* tk option: -start [float] *) | State of state (* tk option: -state [state] *) | Stipple of bitmap (* tk option: -stipple [bitmap] *) | Stretch of bool (* tk option: -stretch [bool] *) | Tabs of tabType list (* tk option: -tabs {[tabType list]} *) | Tags of tagOrId list (* tk option: -tags {[tagOrId list]} *) | TakeFocus of bool (* tk option: -takefocus [bool] *) | TearOff of bool (* tk option: -tearoff [bool] *) | Text of string (* tk option: -text [string] *) | TextHeight of int (* tk option: -height [int] *) | TextVariable of textVariable (* tk option: -textvariable [textVariable] *) | TextWidth of int (* tk option: -width [int] *) | ThroughColor of color (* tk option: -troughcolor [color] *) | TickInterval of float (* tk option: -tickinterval [float] *) | To of float (* tk option: -to [float] *) | Underline of bool (* tk option: -underline [bool] *) | UnderlinedChar of int (* tk option: -underline [int] *) | Value of string (* tk option: -value [string] *) | Variable of textVariable (* tk option: -variable [textVariable] *) | Visual of visual (* tk option: -visual [visual] *) | Width of units (* tk option: -width [units] *) | Window of widget (* tk option: -window [widget] *) | Wrap of wrapMode (* tk option: -wrap [wrapMode] *) | WrapLength of units (* tk option: -wraplength [units] *) | X of units (* tk option: -x [units] *) | XScrollCommand of (float -> float -> unit) (* tk option: -xscrollcommand [(float -> float -> unit)] *) | XScrollIncrement of units (* tk option: -xscrollincrement [units] *) | Y of units (* tk option: -y [units] *) | YScrollCommand of (float -> float -> unit) (* tk option: -yscrollcommand [(float -> float -> unit)] *) | YScrollIncrement of units (* tk option: -yscrollincrement [units] *) ;; type options_constrs = CAccelerator | CActiveBackground | CActiveBorderWidth | CActiveForeground | CActiveRelief | CAfter | CAlign | CAnchor | CArcStyle | CArrowShape | CArrowStyle | CAspect | CBackground | CBefore | CBgStipple | CBigIncrement | CBitmap | CBorderMode | CBorderWidth | CCapStyle | CClass | CCloseEnough | CColormap | CColormode | CCommand | CConfine | CCursor | CData | CDigits | CDisabledForeground | CElementBorderWidth | CExpand | CExportSelection | CExtent | CFgStipple | CFile | CFill | CFillColor | CFont | CForeground | CFormat | CFrom | CGamma | CGeometry | CHeight | CHighlightBackground | CHighlightColor | CHighlightThickness | CIPadX | CIPadY | CImageBitmap | CImagePhoto | CIn | CIndicatorOn | CInsertBackground | CInsertBorderWidth | CInsertOffTime | CInsertOnTime | CInsertWidth | CJoinStyle | CJump | CJustify | CLMargin1 | CLMargin2 | CLabel | CLength | CMaskdata | CMaskfile | CMenu | COffValue | COffset | COnValue | COrient | COutline | COutlineStipple | COverStrike | CPadX | CPadY | CPageAnchor | CPageHeight | CPageWidth | CPageX | CPageY | CPalette | CPostCommand | CRMargin | CRelHeight | CRelWidth | CRelX | CRelY | CRelief | CRepeatDelay | CRepeatInterval | CResolution | CRotate | CScaleCommand | CScreen | CScrollCommand | CScrollRegion | CSelectBackground | CSelectBorderWidth | CSelectColor | CSelectForeground | CSelectImageBitmap | CSelectImagePhoto | CSelectMode | CSetGrid | CShow | CShowValue | CSide | CSliderLength | CSmooth | CSpacing1 | CSpacing2 | CSpacing3 | CSplineSteps | CStart | CState | CStipple | CStretch | CTabs | CTags | CTakeFocus | CTearOff | CText | CTextHeight | CTextVariable | CTextWidth | CThroughColor | CTickInterval | CTo | CUnderline | CUnderlinedChar | CValue | CVariable | CVisual | CWidth | CWindow | CWrap | CWrapLength | CX | CXScrollCommand | CXScrollIncrement | CY | CYScrollCommand | CYScrollIncrement ;;(* /type *) let options_any_table = [CAccelerator; CActiveBackground; CActiveBorderWidth; CActiveForeground; CActiveRelief; CAfter; CAlign; CAnchor; CArcStyle; CArrowShape; CArrowStyle; CAspect; CBackground; CBefore; CBgStipple; CBigIncrement; CBitmap; CBorderMode; CBorderWidth; CCapStyle; CClass; CCloseEnough; CColormap; CColormode; CCommand; CConfine; CCursor; CData; CDigits; CDisabledForeground; CElementBorderWidth; CExpand; CExportSelection; CExtent; CFgStipple; CFile; CFill; CFillColor; CFont; CForeground; CFormat; CFrom; CGamma; CGeometry; CHeight; CHighlightBackground; CHighlightColor; CHighlightThickness; CIPadX; CIPadY; CImageBitmap; CImagePhoto; CIn; CIndicatorOn; CInsertBackground; CInsertBorderWidth; CInsertOffTime; CInsertOnTime; CInsertWidth; CJoinStyle; CJump; CJustify; CLMargin1; CLMargin2; CLabel; CLength; CMaskdata; CMaskfile; CMenu; COffValue; COffset; COnValue; COrient; COutline; COutlineStipple; COverStrike; CPadX; CPadY; CPageAnchor; CPageHeight; CPageWidth; CPageX; CPageY; CPalette; CPostCommand; CRMargin; CRelHeight; CRelWidth; CRelX; CRelY; CRelief; CRepeatDelay; CRepeatInterval; CResolution; CRotate; CScaleCommand; CScreen; CScrollCommand; CScrollRegion; CSelectBackground; CSelectBorderWidth; CSelectColor; CSelectForeground; CSelectImageBitmap; CSelectImagePhoto; CSelectMode; CSetGrid; CShow; CShowValue; CSide; CSliderLength; CSmooth; CSpacing1; CSpacing2; CSpacing3; CSplineSteps; CStart; CState; CStipple; CStretch; CTabs; CTags; CTakeFocus; CTearOff; CText; CTextHeight; CTextVariable; CTextWidth; CThroughColor; CTickInterval; CTo; CUnderline; CUnderlinedChar; CValue; CVariable; CVisual; CWidth; CWindow; CWrap; CWrapLength; CX; CXScrollCommand; CXScrollIncrement; CY; CYScrollCommand; CYScrollIncrement] ;; type searchSpec = Above of tagOrId (* tk option: above [tagOrId] *) | All (* tk option: all *) | Below of tagOrId (* tk option: below [tagOrId] *) | Closest of units * units (* tk option: closest [units] [units] *) | ClosestHalo of units * units * units (* tk option: closest [units] [units] [units] *) | ClosestHaloStart of units * units * units * tagOrId (* tk option: closest [units] [units] [units] [tagOrId] *) | Enclosed of units * units * units * units (* tk option: enclosed [units] [units] [units] [units] *) | Overlapping of int * int * int * int (* tk option: overlapping [int] [int] [int] [int] *) | Withtag of tagOrId (* tk option: withtag [tagOrId] *) ;; type canvasItem = Arc_item (* tk option: arc *) | Bitmap_item (* tk option: bitmap *) | Image_item (* tk option: image *) | Line_item (* tk option: line *) | Oval_item (* tk option: oval *) | Polygon_item (* tk option: polygon *) | Rectangle_item (* tk option: rectangle *) | Text_item (* tk option: text *) | User_item of string (* tk option: [string] *) | Window_item (* tk option: window *) ;; type icccm = DisplayOf of widget (* tk option: -displayof [widget] *) | ICCCMFormat of string (* tk option: -format [string] *) | ICCCMType of string (* tk option: -type [string] *) | LostCommand of (unit -> unit) (* tk option: -command [(unit -> unit)] *) | Selection of string (* tk option: -selection [string] *) ;; type grabStatus = GrabGlobal (* tk option: global *) | GrabLocal (* tk option: local *) | GrabNone (* tk option: none *) ;; type menuItem = Cascade_Item (* tk option: cascade *) | Checkbutton_Item (* tk option: checkbutton *) | Command_Item (* tk option: command *) | Radiobutton_Item (* tk option: radiobutton *) | Separator_Item (* tk option: separator *) | TearOff_Item (* tk option: tearoff *) ;; type optionPriority = Interactive (* tk option: interactive *) | Priority of int (* tk option: [int] *) | StartupFile (* tk option: startupFile *) | UserDefault (* tk option: userDefault *) | WidgetDefault (* tk option: widgetDefault *) ;; type photo = ImgFormat of string (* tk option: -format [string] *) | ImgFrom of int * int * int * int (* tk option: -from [int] [int] [int] [int] *) | ImgTo of int * int * int * int (* tk option: -to [int] [int] [int] [int] *) | Shrink (* tk option: -shrink *) | Subsample of int * int (* tk option: -subsample [int] [int] *) | TopLeft of int * int (* tk option: -to [int] [int] *) | Zoom of int * int (* tk option: -zoom [int] [int] *) ;; type widgetElement = Arrow1 (* tk option: arrow1 *) | Arrow2 (* tk option: arrow2 *) | Beyond (* tk option: *) | Slider (* tk option: slider *) | Trough1 (* tk option: trough1 *) | Trough2 (* tk option: trough2 *) ;; type comparison = EQ (* tk option: == *) | GE (* tk option: >= *) | GT (* tk option: > *) | LE (* tk option: <= *) | LT (* tk option: < *) | NEQ (* tk option: != *) ;; type markDirection = Mark_Left (* tk option: left *) | Mark_Right (* tk option: right *) ;; type textSearch = Backwards (* tk option: -backwards *) | Count of textVariable (* tk option: -count [textVariable] *) | Exact (* tk option: -exact *) | Forwards (* tk option: -forwards *) | Nocase (* tk option: -nocase *) | Regexp (* tk option: -regexp *) ;; type atomId = AtomId of int (* tk option: [int] *) ;; type focusModel = FocusActive (* tk option: active *) | FocusPassive (* tk option: passive *) ;; type wmFrom = FromProgram (* tk option: program *) | FromUser (* tk option: user *) ;;