`      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~         !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe-Inferred;The class of types whose values or contents can be aligned.Column alignment values. Safe-Inferred8The type of event handler collections of parameter type a.:The type of event handlers which take a parameter of type a.Given an event handler collection projection combinator, a target, and a handler, add the handler to the target's event handler collection. Fire an event by extracting an event handler collection from a target and invoking all of its handlers with the specified parameter value. &Create a new event handler collection.      Safe-Inferred.An ASCII skin which will work in any terminal.    NoneB #3Infix attribute constructor. Use: foregroundColor # backgroundColor.$RForeground-only attribute constructor. Background color and style are defaulted.%RBackground-only attribute constructor. Foreground color and style are defaulted.&8Style-only attribute constructor. Colors are defaulted.'Merge two attributes. Leftmost attribute takes precedence where it specifies any of the foreground color, background color, or style. Note that the style precedence is total: all bits of the style mask will take precedence if any are set.(List fold version of '.) Modify the width component of a .*!Modify the height component of a .+ Modify the width component of a .,!Modify the height component of a . !"#$%&'()*+,-./01 !"#$%&'()*+,-./01#$%&'()*+,-./"! 01 !"#$%&'()*+,-./01None2A text stream is a list of text stream entities. A text stream |combines structural elements of the text (e.g., newlines) with the |text itself (words, whitespace, etc.).4?A text stream entity is either a token or a structural element.5Newline.6 Constructor for ordinary tokens.72The type of text tokens. These should consist of printable characters and NOT presentation characters (e.g., newlines). Each type of token should have as its contents a string of characters all of the same type. Tokens are generalized over an attribute type which can be used to annotate each token.8Whitespace tokens.9Non-whitespace tokens.:The token's string.;The token's attribute.<Get the entities in a stream.=#Get the length of a token's string.>Gets a 7 from an entity or raises an exception if the entity does not contain a token. Used primarily for convenience transformations in which the parameter is known to be a token entity.?{Given a text stream, serialize the stream to its original textual representation. This discards token attribute metadata.@]Tokenize a string and apply a default attribute to every token in the resulting text stream.ASame as B but for Text values.BGiven a list of tokens, truncate the list so that its underlying string representation does not exceed the specified column width.C8Given a text stream and a wrapping width, return a new 2q with newlines inserted in appropriate places to wrap the text at the specified column (not character position).This function results in text wrapped without leading or trailing whitespace on wrapped lines, although it preserves leading whitespace in the text which was not the cause of the wrapping transformation.DGiven a list of text stream entities, split up the list wherever newlines occur. Returns a list of lines of entities, such that all entities wrap tokens and none are newlines. (Safe for use with >.)23456789:;<=>?@ABCD23456789:;<=>?@ABCD23465798:;:;@?=><BACD23465798:;:;<=>?@ABCD Safe-InferredFCreate a zipper using a custom text storage type. Takes the initial text as well as all of the functions necessary to manipulate the underlying text values.G$Get the text contents of the zipper.H.Return the lengths of the lines in the zipper.I/Get the cursor position of the zipper; returns  (row, col). row ranges from [0..num_rows-1] inclusive; col ranges from [0..length of current line]o inclusive. Column values equal to line width indicate a cursor that is just past the end of a line of text.JMove the cursor to the specified row and column. Invalid cursor positions will be ignored. Valid cursor positions range as described for I.K@The line of text on which the zipper's cursor currently resides.L_Insert a character at the current cursor position. Move the cursor one position to the right.M3Insert a line break at the current cursor position.N/Move the cursor to the end of the current line.ORemove all text from the cursor position to the end of the current line. If the cursor is at the beginning of a line and the line is empty, the entire line will be removed.PdDelete the character preceding the cursor position, and move the cursor backwards by one character.QDelete the character at the cursor position. Leaves the cursor position unchanged. If the cursor is at the end of a line of text, this combines the line with the line below.R5Move the cursor to the beginning of the current line.SMove the cursor right by one position. If the cursor is at the end of a line, the cursor is moved to the first position of the following line (if any).TMove the cursor left by one position. If the cursor is at the beginning of a line, the cursor is moved to the last position of the preceding line (if any).UMove the cursor up by one row. If there no are rows above the current one, move to the first position of the current row. If the row above is shorter, move to the end of that row.VMove the cursor down by one row. If there are no rows below the current one, move to the last position of the current row. If the row below is shorter, move to the end of that row.WConstruct a zipper from  values.#EFA singleton constructor.......The initial lines of text.GHIJKLMNOPQRSTUVWEFGHIJKLMNOPQRSTUVWEFWGKIHJLMONRPQSTUVE FGHIJKLMNOPQRSTUVWNoneXNThe type of clipping rectangles for 2-D clipping operations. All values are  values to indicate that we are dealing explicitly with physical column measurements rather than logical character positions.Z*The left margin of the clipping rectangle.[&The top row of the clipping rectangle.\1The width, in columns, of the clipping rectangle.]/The height, in rows, of the clipping rectangle.^tOne-dimensional text clipping. Takes the left clipping margin, a clipping width, and a text string. For example,  clip1d n w s clips the string s+ so that the result includes characters in s starting at position n. and including characters using no more than w2 columns in width. Returns the clipped text plus [s indicating whether wide characters were "sliced" on either side (left and right, respectively) of the clipping region. This function guarantees that the text returned will always fit within the specified clipping region. Since wide characters may be sliced during clipping, this may return a text string smaller than the clipping region._TTwo-dimensional text clipping. Returns clipping data for each line as returned by ^3, with the added behavior that it returns at most ] lines of text and uses [# as the offset when clipping rows.`QGiven a physical point and a clipping rectangle, adjust the clipping rectangle so that the point falls just inside the rectangle. If the point is already within the rectangle, return the rectangle unmodified. NB: this assumes that the physical position given has passed whatever validation checks are relevant for the user of the X;. This function just performs a rectangle transformation. XYZ[\]^_` XYZ[\]^_` XYZ[\]^_`XYZ[\]^_`None+24:MJaHFocus group. Represents an cycle of widgets which receive input focus.1The state type of widgets added to a focus group.bFocus group handling errors.c?Thrown when the specified focus group entry index was invalid.d[Thrown when the desired operation could not be completed because the focus group is empty.fUThe type of widget implementations, parameterized on the type of the widget's state.hThe state of the widget.iWhether the widget is visible.j-The rendering routine of the widget. Takes the widget itself, a region indicating how much space the rendering process has to work with, and a rendering context to be used to determine attribute and skin settings. This MUST return an image which is no larger than the specified rendering region.kWReturns whether the widget will automatically grow to fill available horizontal space.lUReturns whether the widget will automatically grow to fill available vertical space.m<The size of the widget after its most recent rendering pass.nAThe position of the widget after its most recent rendering pass.o.The normal (unfocused) attribute of the wiget.p$The focused attribute of the widget.qSets the current position of the widget. Takes a widget reference and a display region indicating the coordinates of the widget's upper left corner.r>The widget's key event handler. Takes a widget reference, a key event, and a list of keyboard modifiers. Returns whether the keyboard event was handled. True indicates that the event was handled and that event processing should halt; False indicates that other event handlers, if present, may handle the event.s;List of handlers to be invoked when the widget gains focus.t>List of handlers to be invoked when the widget's size changes.u;List of handlers to be invoked when the widget loses focus.vWhether the widget is focused.wReturns the current terminal cursor position. Should return Nothing if the widget does not need to show a cursor, or Just if it does. (For example, widgets receiving keyboard input for text editing would should a cursor, but most won't need to.)x6Context information used during the rendering process.zIThe default normal attribute to use unless overridden by a given widget.{`The default focused attribute to use for a focused widget unless overridden by a given widget.|An override attribute to be used to override both the normal and focus attributes in effect during rendering. Usually defAttr, this attribute is used when child widgets need to have their attributes overridden by a parent widget.}rThe skin to use for rendering borders and other interface elements which use the skin for their representations.~Render errors.An error indicating that a widget rendered to an image which exceeded the available space. Provides a representation of the violating widget, the size of the available space, and the size of the image which the widget's rendering routine produced.The class of types with a  ''focus''P attribute, i.e., a way of visually indicating that the object has input focus.The class of types with a  ''normal'' attribute.$Set the normal attribute on a value.#Set the focus attribute on a value.0Get the normal attribute of a rendering context.Default context settings.Show a widget. Most widget show instances aren't going to contain all of the widget state, but this at least gives an indication of the widget type, which can be crucial for debugging.Set the visibility of a widget. Invisible widgets do not grow in either direction, always render to an empty image, and never declare a cursor position.Get the visibility of a widget. Does a widget grow horizontally?Does a widget grow vertically?eRender a widget. This function should be called by widget implementations, since it does more than j; this function takes care of setting up attributes in the rendering context, setting the size of the widget after it has been rendered, and checking for size violations. May throw a ~.Render a widget and set its position after rendering is complete. This is exported for internal use; widget implementations should call  instead.Set the current size of a widget. Exported for internal use. When the size changes from its previous value, resize event handlers will be invoked.OGet the current size of the widget (its size after its most recent rendering).%Set the current position of a widget.ASet the current position of a widget. Exported for internal use.Create a new widget. Takes an initial state value and a widget implementation transformation and passes it an implementation with default values.2Default cursor positioning implementation used by .Given a widget and key event information, invoke the widget's key event handler with the event information. Returns whether the event was handled.MGiven a widget, invoke its resize event handlers with the old and new sizes.Given widgets A and B, causes any key events on widget A to be relayed to widget B. Note that this does behavior constitutes an ordinary key event handler from A's perspective, so if B does not handle a given key event, subsequent key event handlers on A will still get a chance to handle the event. This function is mostly useful for wrapper widgets which don't do any event handling of their own but want to ensure that all key events are relayed to the wrapped widget.eGiven widgets A and B, cause all focus gain and loss events on A to cause focus gain and loss for B.Given a widget and a key event handler, add the handler to the widget's key event handler structure. The event handler is added last, so any preexisting handlers will run before this one.VFocus a widget. Causes its focus gain event handlers to run. If the widget is in a a and if that group's currently-focused widget is some other widget, that widget will lose the focus and its focus loss event handlers will be called.?Unfocus a widget. Causes its focus loss event handlers to run.Given a widget and a focus gain event handler, add the handler to the widget. The handler will be invoked when the widget receives focus.VGiven a widget and a resize event handler, add the handler to the widget. The handler will be invoked when the widget's size changes. This includes the first rendering, at which point its size changes from (0, 0). Note that if the resize handler needs to change the visual appearance of the widget when its size changes, be sure to use schedule to ensure that visual changes are reflected immediately, and be absolutely sure that those changes will not cause further size changes; that will cause a resize event handler loop that will consume your CPU!Given a widget and a focus loss event handler, add the handler to the widget. The handler will be invoked when the widget loses focus.-Convenience projection on the contents of an .0Convenience projection on the state of a widget.hGiven a widget and an implementation transformer, apply the transformer to the widget's implementation. Get the state value of a widget.:Apply a state transformation function to a widget's state.Create a new focus group. Note that the focus group is itself a widget; any input event handlers added to the focus group will fire before input events are handled by the currently-focused widget.]Set the keyboard event information used to change focus to the next widget in a focus group.aSet the keyboard event information used to change focus to the previous widget in a focus group.Merge two focus groups. Given two focus groups A and B, this returns a new focus group with all of the entries from A and B added to it, in that order. At least one A and B must be non-empty or d will be thrown.bGiven two focus groups A and B, append the entries of B to A, mutating A in the process. Throws d if B is empty.XReset a focus group. This ensures that the focus group's state is coherent by calling # on the group's focused entry and A on all the rest. This is for internal use, but is used by the  Collection> switching implementation to ensure that focus state is sane.6Get the desired cursor position, if any, for a widget.0Return the current focus entry of a focus group.Add a widget to a focus group. This returns a focus group entry which wraps the specified widget; the focus group entry is also a widget and can take key event handlers and the like. During input event processing, the focus group entry receives keyboard events and passes them on to the wrapped widget. If you want a widget to have specific event handling in a particular interface, add event handlers to its focus entry/entries instead of the widget itself.'Focus the next widget in a focus group.+Focus the previous widget in a focus group.\abcdefghijklmnopqrstuvwxyz{|}~The widget to render.3The amount of space in which to render the widget.The rendering context to use.The widget to render.,The position at which to render the widget.3The amount of space in which to render the widget.The rendering context to use.Jabcdefghijklmnopqrstuvwxyz{|}~Jfghijklmnopqrstuvwexyz{|}~abdc;abdcefghijklmnopqrstuvwxyz{|}~ None+#Child size policy applied to a box.iPercentage, p, of space given to first child, which implies that (100 - p) percent given to the second.A per-child policy.MIndividual child widget policy applied to a child widget contained in a box.[A fixed number of rows or columns, depending on box type, will be allocated to the child.The child's growth policy will be used to determine layout. The child widget layout will also be affected by the policy of the other widget in the box.5Indicates that a given percentage value was invalid.Create a horizontal box widget containing two widgets side by side. Space consumed by the box will depend on its contents, available space, and the box child size policy.Create a vertical box widget containing two widgets, one above the other. Space consumed by the box will depend on its contents, available space, and the box child size policy.?Create a vertical box widget using monadic widget constructors.ACreate a horizontal box widget using monadic widget constructors.UThe default box child size policy, which defers to the children to determine layout.;Get a reference to the first (left or top) widget in a box.@Get a reference to the second (right or bottom) widget in a box.`Set the spacing in between a box's child widgets in rows or columns, depending on the box type.$Get the child size policy for a box.'Set the box child size policy. Throws b if the size policy uses an invalid percentage value, which must be between 0 and 100 inclusive.)        None24yThe type of formatted text widget state. Stores the text itself and the formatter used to apply attributes to the text.A formatter makes changes to text at rendering time. Some formatting use cases involve knowing the size of the rendering area, which is not known until render time (e.g., text wrapping). Thus, a formatter takes a C which indicates the size of screen area available for formatting.7The null formatter which has no effect on text streams.`Construct a Widget directly from a Text value. This is recommended if you don't need to use a .IConstruct a Widget directly from a list of strings and their attributes.A formatter for wrapping text into the available space. This formatter will insert line breaks where appropriate so if you want to use other structure-sensitive formatters, run this formatter last.Construct a text widget formatted with the specified formatters and initial content. The formatters will be applied in the order given here (and, depending on the formatter, order might matter).Set the formatter for the text.Get the formatter for the text.Set whether a text widget can appear focused by using the context-specific focus attribute when the widget has the focus. This setting defaults to False; some widgets which embed text widgets may need to turn this on.Set the text value of a ( widget. The specified string will be @d.1Append the text value to the text contained in a ' widget. The specified string will be @d.2Prepend the text value to the text contained in a ' widget. The specified string will be @d.$Prepend text to the text value of a  widget directly, in case you have done formatting elsewhere and already have text with attributes. The specified strings will each be @#d, and tokens resulting from each @? operation will be given the specified attribute in the tuple.#Append text to the text value of a  widget directly, in case you have done formatting elsewhere and already have text with attributes. The specified strings will each be @#d, and tokens resulting from each @? operation will be given the specified attribute in the tuple.Set the text value of a  widget directly, in case you have done formatting elsewhere and already have text with attributes. The specified strings will each be @#d, and tokens resulting from each @? operation will be given the specified attribute in the tuple. !Low-level text-rendering routine.     None24:M bThe class of types with a border attribute, which differs from the normal and focused attributes.=Sets the border attribute of a thing with a border attribute.OAdds a label to a horizontal border. The label will be horizontally centered.OAdds a label to a horizontal border. The label will be horizontally centered._Adds a label to the top border of a bordered widget. The label will be horizontally centered._Adds a label to the top border of a bordered widget. The label will be horizontally centered.SCreate a single-row horizontal border using the specified attribute and character.TCreate a single-column vertical border using the specified attribute and character.!Wrap a widget in a bordering box.  None24PSet the function which rewrites all characters at rendering time. Defaults to -. Does not affect text stored in the editor.PSet the function which allows typed characters in the edit widget. Defaults to  A, allowing all characters. For example, setting the filter to ( : "0123456789") will only allow numbers in the edit widget.!Convert a logical column number (corresponding to a character) to a physical column number (corresponding to a terminal cell).Construct a text widget for editing a single line of text. Single-line edit widgets will send activation events when the user presses Enter (see ).|Construct a text widget for editing multi-line documents. Multi-line edit widgets never send activation events, since the Enter/ key inserts a new line at the cursor position.;Set the limit on the number of lines for the edit widget. " indicates no limit, while #5 indicates a limit of the specified number of lines.8Get the current line limit, if any, for the edit widget.jSet the maximum length of the contents of an edit widget. Applies to every line of text in the editor. " indicates no limit, while #: indicates a limit of the specified number of characters.<Get the current maximum length, if any, for the edit widget.?Register handlers to be invoked when the edit widget has been  ''activated'' (when the user presses Enter while the widget is focused). These handlers will only be invoked when a single-line edit widget is activated; multi-line widgets never generate these events.sRegister handlers to be invoked when the edit widget's contents change. Handlers will be passed the new contents.Register handlers to be invoked when the edit widget's cursor position changes. Handlers will be passed the new cursor position, relative to the beginning of the text (position (0, 0)).zGet the current contents of the edit widget. This returns all of the lines of text in the widget, separated by newlines.fGet the contents of the current line of the edit widget (the line on which the cursor is positioned).Set the contents of the edit widget. Newlines will be used to break up the text in multiline widgets. If the edit widget has a line limit, only those lines within the limit will be set. If the edit widget has a line length limit, lines will be truncated.<Get the edit widget's current cursor position (row, column).dSet the cursor position to the specified row and column. Invalid cursor positions will be ignored.$Compute the physical cursor position (column) for the cursor in a given edit widget state. The physical position is relative to the beginning of the current line (i.e., zero, as opposed to the displayStart and related state). Apply an editing transformation to the edit widget's text. If the transformation modifies the text or the cursor, the appropriate event handlers will be notified. If a line limit is in effect and the transformation violates it, the transformation will be ignored.)%&'()*+,-./012!34567$89 %&'()*+,-./012!34567$89 None+24:mIndicates that a state argument used for a checkbox state transition is not a valid state for the checkbox.;cIndicates that a checkbox state value is not a valid state value in the checkbox's state mapping.<NIndicates that an empty state list was used to create a multi-state checkbox.Create a new radio button group. This is used to guarantee exclusivity among the check boxes in the group so that they behave like radio buttons.bRegister a handler to be notified when the currently-selected check box in a radio group changes.=Get the currently-selected checkbox in a radio group, if any.rAdd a check box to a radio group. The check box's apperance will be changed so that it resembles a radio button.4Create a new checkbox with the specified text label."Create a new multi-state checkbox.ESet the visual representation for a state in a checkbox. May throw :.eSet the checkbox's bracketing characters for the left and right brackets around the state character.Get a checkbox's text label.(Set the state of a checkbox. May throw ;.#Set a binary checkbox to unchecked.!Set a binary checkbox to checked.Toggle a binary checkbox.%Get a checkbox's current state value.=Cycle a checkbox's state to the next value in its state list.aRegister a handler for a checkbox state change. The handler will be passed the new state value.+=>?@ABCDEF:;<GHIJThe checkbox label._The list of valid states that the checkbox can be in, along with the visual representation (K) for each state.LMNOPQRS =>?@ABCDEF<;:GHIJLMNOPQRSNone24:M /The class of types to which we can add padding.The type of padding on widgets.$Padding constructor with no padding.1Padding constructor with left padding in columns. 2Padding constructor with right padding in columns. -Padding constructor with top padding in rows. 0Padding constructor with bottom padding in rows. CPadding constructor with padding on all sides in rows and columns. ;Padding constructor with padding on top and bottom in rows.>Padding constructor with padding on left and right in columns."Monadic combinator to construct a  wrapper. Create a  wrapper to add padding.TUVWXY     Z[\          TUVWXY     Z[\None:M 3Impose a maximum horizontal size, in columns, on a e.1Impose a maximum vertical size, in columns, on a e.0Set the vertical limit of a child widget's size.2Set the horizontal limit of a child widget's size.3Add to the vertical limit of a child widget's size.5Add to the horizontal limit of a child widget's size.0Get the vertical limit of a child widget's size.2Get the horizontal limit of a child widget's size.FImpose a horizontal and vertical upper bound on the size of a widget.]^Maximum width in columnsMaximum height in rows_`   ]^_`None:M 1Impose a fixed horizontal size, in columns, on a e./Impose a fixed vertical size, in columns, on a e. .Set the vertical fixed size of a child widget.!0Set the horizontal fixed size of a child widget."1Add to the vertical fixed size of a child widget.#3Add to the horizontal fixed size of a child widget.$.Get the vertical fixed size of a child widget.%0Get the horizontal fixed size of a child widget.&8Impose a fixed horizontal and vertical size on a widget.ab !"#$%&Width in columnsHeight in rowscd  !"#$%& & !"#$% ab !"#$%&cdNone+24('8The list widget type. Lists are parameterized over the internal  value type aj, the type of internal values used to refer to the visible representations of the list contents, and the  widget type b:, the type of widgets used to represent the list visually.e"The currently selected list index.f5The start index of the window of visible list items.g-The size of the window of visible list items.hThe items in the list.(aAn item in the list was activated at the specified position with the specified value and widget.*aAn item was removed from the list at the specified position with the specified value and widget.,`A new item was added to the list at the specified position with the specified value and widget./5No item was selected, which means the list is empty.0^An item at the specified position with the specified internal value and widget was selected.1<A list item. Each item contains an arbitrary internal value a and a e representing it.4JThe specified position could not be used to remove an item from the list.5'Get the length of the list in elements.6GRemove an element from the list at the specified position. May throw 4.7_Sets the attributes to be merged on the selected list item when the list widget has the focus.8iSets the attributes to be merged on the selected list item when the list widget does not have the focus.9Add an item to the list. Its widget will be constructed from the specified internal value using the widget constructor passed to @.:Insert an element into the list at the specified position. If the position exceeds the length of the list, it is inserted at the end.;MRegister event handlers to be invoked when the list's selected item changes.<LRegister event handlers to be invoked when a new item is added to the list.=MRegister event handlers to be invoked when an item is removed from the list.>Register event handlers to be invoked when an item is activated, which happens when the user presses Enter on a selected element while the list has the focus.?FClear the list, removing all elements. Does not invoke any handlers.@aCreate a new list. The list's item widgets will be rendered using the specified height in rows.A2A convenience function to create a new list using Text$ values as the internal values and % widgets to represent those strings.BKProgrammatically activate the currently-selected item in the list, if any.C%Get the currently-selected list item.D,Get the list item at the specified position.E&Set the currently-selected list index.FcFind the first index of the specified key in the list. If the key does not exist, return Nothing.GFind the first index in the list for which the predicate is true. If no item in the list matches the given predicate, return Nothing.H3Find all indicies of the specified key in the list.I:Find all indices in the list matching the given predicate.JScroll a list up or down by the specified number of positions. Scrolling by a positive amount scrolls downward and scrolling by a negative amount scrolls upward. This automatically takes care of managing internal list state and invoking event handlers.K!Scroll to the last list position.L"Scroll to the first list position.M#Scroll a list down by one position.N!Scroll a list up by one position.O@Scroll a list down by one page from the current cursor position.P>Scroll a list up by one page from the current cursor position.C'ijkefghlmnop()*+,-./01234qItem widget height in rows56789:;<=>?@#Height of list item widgets in rowsrsAThe list items4Maximum number of rows of text to show per list itemBCDEFGHItJuvwxyKLMNOPz{|}*'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOP*'1243,-*+.0/()A@9:678JNMKLPO;<=>B?EFGHI5CD0' ijkefghlmnop()*+,-.0/1243q56789:;<=>?@rsABCDEFGHItJuvwxyKLMNOPz{|}None24S_A vertical fill widget. Fills all available space with the specified character and attribute.TA horizontal fill widget. Fills the available horizontal space using the specified character. The integer parameter specifies the height, in rows, of the fill.Q~RSTQRSTRQTSQ~RSTNone:MW.Wrap another widget to center it horizontally.X,Wrap another widget to center it vertically.YBWrap another widget to center it both vertically and horizontally. UVWXYUVWXYVUWXYUVWXYNone+246:M[EThe class of types whose values can be used to construct table rows.]The specification of a column's settings. The alignment and padding of a column specification override the table-wide default.b!The type of column size policies.cTThe column's width is a function of space available to the table at rendering time.d5The column has the specified fixed width in columns.e$The border configuration of a table.f Don't draw any borders anywhere.gA partial set of border flags.i,The types of borders we can have in a table.j.Borders around the outside edges of the table.kBorders between columns.lBorders between rows.mThe wrapper type for all table cells; stores the widgets themselves in addition to alignment and padding settings. Alignment and padding settings on a cell override the column- and table-wide defaults.oOA table cell contains a widget which grows vertically, which is not permitted.pMThe image rendered by a cell widget exceeded the size permitted by the cell.q[A row added to the table did not have the same number of widgets as the table has columns.rRow constructor using [ instances.sCreate a custom m/ to set its alignment and/or padding settings.tCreate an empty table cell.u*Set the default table-wide cell alignment.v(Set the default table-wide cell padding.wCreate a column.xPCreate a table widget using a list of column specifications and a border style.yAdd a heading row to a table. Adds a row using the specified |labels and attribute. Returns the widgets it constructed as a |side-effect in case you want to do something with them.zUAdd a heading row to a table. Adds a row using the specified |labels and attribute.{Add a row to the table. Use [) instances to populate the row. Throws o4 if any widgets in the row grow vertically; throws qI if the row's number of columns does not match the table's column count.LZ[\]^_`abcdefghijklmnopqrstuvwxyz{"Z[\]^_`abcdefghijklmnopqrstuvwxyz{"Zmbdcehgfilkj[\nqpo]^_`arxuv{yzwst1Z[\]^_`abdcehgfilkjmnqporstuvwxyz{rNone}6Get a reference to the button's widget to lay it out.~.Register a handler for the button press event.>Programmatically press a button to trigger its event handlers.Set the text label on a button.1Create a button. Get its underlying widget with }. |}~|}~|}}~|}~NoneiCreate a new dialog with the specified embedded interface and title. Returns the dialog itself and the a? to which its buttons were added, for use in your application.<Register an event handler for the dialog's acceptance event.>Register an event handler for the dialog's cancellation event.#Programmatically accept the dialog.#Programmatically cancel the dialog. NoneCreate a new progress bar with the specified completed and uncompleted attributes, respectively. The foreground of the attributes will be used to show the progress bar's label, if any.Register a handler to be invoked when the progress bar's progress value changes. The handler will be passed the new progress value.ZSet the progress bar's progress value. Values outside the allowed range will be ignored.,Set the progress bar's text label alignment."Set the progress bar's text label..Get the progress bar's current progress value.6Add a delta value to the progress bar's current value. None`The collection of attributes and annotations used to determine the browser's visual appearance.7Used for the header and footer areas of the interface.BUsed for the selected entry when the browser does not have focus.-Used for the browser's error-reporting area.Used for directory entries.Used for symbolic link entries.Used for block device entries.Used for named pipe entries.Used for device entries.Used for socket entries.,Whether the browser header should be shown.,Whether the browser footer should be shown.File annotations.IThe predicate which determines which entries get listed in the browser.BThe default browser skin with (hopefully) sane attribute defaults.$Apply annotations to a browser skin.rCreate a directory browser widget with the specified skin. Returns the browser itself along with its focus group.Report an error in the browser's error-reporting area. Useful for reporting application-specific errors with the user's file selection.@Register handlers to be invoked when the user makes a selection.?Register handlers to be invoked when the user cancels browsing.@Register handlers to be invoked when the browser's path changes.\Refresh the browser by reloading and displaying the contents of the browser's current path.Set the browser's current path.Get the browser's current path.4 None'A group of widgets of a specified type. Create a new empty widget group.Add a widget to a group. Returns an action which, when evaluated, will update the group state so that its currently-active widget is the one passed to this function.DSet a group's current entry to the specified index. Use with care. None+:M'The type of user interface collections.Run the main vty-ui event loop using the specified interface collection and initial rendering context. The rendering context provides the default attributes and Skin& to use for the application. Throws  if the specified  is empty.Schedule a widget-mutating  action to be run by the main event loop. Use of this function is required to guarantee consistency between interface presentation and internal state.jSchedule a vty-ui event loop shutdown. This event will preempt others so that it will be processed next.Create a new collection.Add a widget and its focus group to a collection. Returns an action which, when invoked, will switch to the interface specified in the call.Add a widget and its focus group to a collection. In addition, two callbacks -- one to call when showing the widget and one to call when hiding it (i.e. showing some other widget) -- must be provided. Returns an action which, when invoked, will switch to the interface specified.$  None  !"#$%&'()*+,-./01EFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&''()*+,-./01234567789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrrstuvwxyz{|}~                                          !"#$%&'()*+,-./0123456789:;<=>>??@@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoppqrstuvwxyz{|}~"z                         ! "  # $ % & ' (    ) * + , - ./0/123 45657 8  9 : ; < = > ? @ 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 Y Z <[ \ ] ^ I _ ` a bcdefghi'(jk23lmnopq=rstuvwxyz{|}~dehim+ vty-ui-1.9Graphics.Vty.Widgets.AlignmentGraphics.Vty.Widgets.EventsGraphics.Vty.Widgets.SkinsGraphics.Vty.Widgets.UtilText.Trans.TokenizeGraphics.Vty.Widgets.TextZipperGraphics.Vty.Widgets.TextClipGraphics.Vty.Widgets.CoreGraphics.Vty.Widgets.BoxGraphics.Vty.Widgets.TextGraphics.Vty.Widgets.BordersGraphics.Vty.Widgets.EditGraphics.Vty.Widgets.CheckBoxGraphics.Vty.Widgets.PaddingGraphics.Vty.Widgets.LimitsGraphics.Vty.Widgets.FixedGraphics.Vty.Widgets.ListGraphics.Vty.Widgets.FillsGraphics.Vty.Widgets.CenteringGraphics.Vty.Widgets.TableGraphics.Vty.Widgets.ButtonGraphics.Vty.Widgets.Dialog Graphics.Vty.Widgets.ProgressBarGraphics.Vty.Widgets.DirBrowserGraphics.Vty.Widgets.GroupGraphics.Vty.Widgets.EventLoopGraphics.Vty.Widgets.All Alignablealign Alignment AlignRight AlignLeft AlignCenterHandlersHandler addHandler fireEvent newHandlersSkin skinCornerTL skinCornerTR skinCornerBR skinCornerBLskinIntersectionFullskinIntersectionLskinIntersectionRskinIntersectionTskinIntersectionBskinHorizontal skinVertical asciiSkin unicodeSkinunicodeBoldSkinunicodeRoundedSkinPhyschWidth textWidthstrWidth takeMaxChars takeMaxTextonfgColorbgColorstyle mergeAttr mergeAttrs withWidth withHeight plusWidth plusHeightremoveinjectrepl regionWidth regionHeight TextStreamTSTextStreamEntityNLTTokenWSStokenStr tokenAttrstreamEntitiestokenLen entityToken serializetokenize truncateText truncateLine wrapStream findLines TextZippermkZippergetText lineLengthscursorPosition moveCursor currentLine insertChar breakLinegotoEOL killToEOLdeletePrevChar deleteChargotoBOL moveRightmoveLeftmoveUpmoveDown textZipperClipRectclipLeftclipTop clipWidth clipHeightclip1dclip2d updateRect FocusGroupFocusGroupErrorFocusGroupBadIndexFocusGroupEmptyWidget WidgetImplstatevisiblerender_growHorizontal_ growVertical_ currentSizecurrentPositionnormalAttributefocusAttributesetCurrentPosition_keyEventHandlergainFocusHandlersresizeHandlersloseFocusHandlersfocusedgetCursorPosition_ RenderContext normalAttr focusAttr overrideAttrskin RenderError ImageTooBig HasFocusAttrsetFocusAttribute HasNormalAttrsetNormalAttributewithNormalAttributewithFocusAttribute getNormalAttrdefaultContext showWidget setVisible getVisiblegrowHorizontal growVerticalrenderrenderAndPositiongetCurrentSizegetCurrentPositionsetCurrentPosition newWidgethandleKeyEventrelayKeyEventsrelayFocusEvents onKeyPressedfocusunfocus onGainFocusonResize onLoseFocus<~<~~ updateWidgetgetStateupdateWidgetState newFocusGroupsetFocusGroupNextKeysetFocusGroupPrevKeymergeFocusGroupsappendFocusGroupresetFocusGroupgetCursorPositionaddToFocusGroup focusNext focusPreviousBoxChildSizePolicy PercentagePerChildIndividualPolicyBoxFixedBoxAutoBoxError BadPercentagehBoxvBox<--><++>defaultChildSizePolicy getFirstChildgetSecondChild setBoxSpacingwithBoxSpacinggetBoxChildSizePolicysetBoxChildSizePolicy FormattedText FormatterapplyFormatter nullFormatter plainTextplainTextWithAttrswrap textWidgetsetTextFormattergetTextFormattersetTextAppearFocusedsetText appendText prependTextprependTextWithAttrsappendTextWithAttrssetTextWithAttrsBorderedVBorderHBorder HasBorderAttrsetBorderAttributewithBorderAttributewithHBorderLabelsetHBorderLabelwithBorderedLabelsetBorderedLabelhBordervBorderborderedEditsetEditRewriter setCharFilter editWidgetmultiLineEditWidgetsetEditLineLimitgetEditLineLimitsetEditMaxLengthgetEditMaxLength onActivateonChange onCursorMove getEditTextgetEditCurrentLine setEditTextgetEditCursorPositionsetEditCursorPosition applyEditCheckBox RadioGroup newRadioGroup onRadioChangegetCurrentRadioaddToRadioGroup newCheckboxnewMultiStateCheckbox setStateCharsetBracketCharsgetCheckboxLabelsetCheckboxStatesetCheckboxUncheckedsetCheckboxCheckedtoggleCheckboxgetCheckboxState cycleCheckboxonCheckboxChangePaddablepadPaddedPadding+++padNonepadLeftpadRightpadTop padBottompadAll padTopBottom padLeftRight withPaddingpaddedVLimitHLimithLimitvLimit setVLimit setHLimit addToVLimit addToHLimit getVLimit getHLimitboxLimitVFixedHFixedhFixedvFixed setVFixed setHFixed addToVFixed addToHFixed getVFixedSize getHFixedSizeboxFixedListActivateItemEventRemoveItemEvent NewItemEventSelectionEvent SelectionOff SelectionOnListItem ListError ResizeError BadItemIndex getListSizeremoveFromListsetSelectedFocusedAttrsetSelectedUnfocusedAttr addToListinsertIntoListonSelectionChange onItemAdded onItemRemovedonItemActivated clearListnewList newTextListactivateCurrentItem getSelected getListItem setSelected listFindFirstlistFindFirstBy listFindAll listFindAllByscrollBy scrollToEndscrollToBeginning scrollDownscrollUppageDownpageUpHFillVFillvFillhFill VCentered HCentered hCentered vCenteredcenteredTableRowLikemkRow ColumnSpec columnSizecolumnAlignment columnPadding ColumnSizeColAutoColFixed BorderStyle BorderNone BorderFull BorderPartial BorderFlagEdgesColumnsRows TableCell TableErrorBadTableWidgetSizePolicyCellImageTooBigColumnCountMismatch.|. customCell emptyCellsetDefaultCellAlignmentsetDefaultCellPaddingcolumnnewTable addHeadingRowaddHeadingRow_addRowButton buttonWidgetonButtonPressed pressButton setButtonText newButtonDialog dialogWidgetsetDialogTitle newDialogonDialogAcceptonDialogCancel acceptDialog cancelDialog ProgressBarnewProgressBaronProgressChange setProgresssetProgressTextAlignmentsetProgressText getProgress addProgress BrowserSkinbrowserHeaderAttrbrowserUnfocusedSelAttrbrowserErrorAttrbrowserDirAttrbrowserLinkAttrbrowserBlockDevAttrbrowserNamedPipeAttrbrowserCharDevAttrbrowserSockAttrbrowserShowHeaderbrowserShowFooterbrowserCustomAnnotationsbrowserIncludeEntry DirBrowserdirBrowserWidgetDirBrowserWidgetTypedefaultBrowserSkinwithAnnotations newDirBrowserreportBrowserErroronBrowseAcceptonBrowseCancelonBrowserPathChangerefreshBrowsersetDirBrowserPathgetDirBrowserPathGroupnewGroup addToGroupsetCurrentGroupEntry Collection EntryHide EntryShowCollectionErrorBadCollectionIndexrunUischedule shutdownUi newCollectionaddToCollectionaddToCollectionWithCallbackssetCurrentEntry vty-5.2.8Graphics.Vty.Prelude DisplayRegionwsCharsisWsisNL isWhitespaceisWsEnt partitions$fEqTextStream$fEqTextStreamEntity $fEqToken $fShowToken$fShowTextStreamEntity$fShowTextStream text-1.2.0.4Data.Text.InternalTextTZtoLefttoRightabovebelowfromChardrop_take_length_last_init_null_baseGHC.ListdroptakelengthlastinitnulllastLinenextLine$fShowTextZipper$fEqTextZipperghc-prim GHC.TypesBool FocusEntrysetCurrentSizedefaultCursorInfohandleResizeEvent GHC.IORefIORef currentEntryentriescurrentEntryNumnextKeyprevKey newFocusEntrysetCurrentFocus$fExceptionFocusGroupError$fShowWidgetImpl$fExceptionRenderError$fHasFocusAttrIORef$fHasNormalAttrIORefboxChildSizePolicyboxOrientation boxSpacingboxFirst boxSecond firstGrows secondGrows regDimension imgDimension withDimensionimg_cat OrientationVertical Horizontalbox renderBoxrenderBoxFixed renderBoxAuto $fShowBox$fExceptionBoxError renderText textContent formatteruseFocusAttribute_setTextWithAttrs$fShowFormattedText$fMonoidFormatter renderHBorder drawBordered$fHasBorderAttrIORef$fShowBordered$fHasBorderAttrIORef0$fHasBorderAttrIORef1GHC.BaseidconstTrueelem toPhysical Data.MaybeNothingJust physCursorColcontentsclipRectactivateHandlerschangeHandlerscursorMoveHandlers lineLimit maxLengthrewriter charFilter editWidget'internalGetCursorPositionrenderEditWidget doClipping indicatorChar resizeEditnotifyActivateHandlersnotifyChangeHandlersnotifyCursorMoveHandlers editKeyEvent $fShowEditBadStateArgumentBadCheckboxStateEmptyCheckboxStatesleftBracketCharrightBracketCharcheckboxStates currentState checkboxLabelcheckboxChangeHandlerscheckboxFrozeninnerTextWidget CheckBoxErrorRadioGroupDatacurrentlySelectedChar modifyElem radioKeyEvent setChecked_thawfreeze$fShowCheckBox$fExceptionCheckBoxError leftPadding rightPadding bottomPadding topPadding$fPaddablePadding$fMonoidPadding $fShowPadded $fShowVLimit $fShowHLimit $fShowVFixed $fShowHFixed selectedIndexscrollTopIndexscrollWindowSize listItemsselectedUnfocusedAttrselectedFocusedAttrselectionChangeHandlersitemAddHandlersitemRemoveHandlersitemActivateHandlers itemHeight newListData listKeyEventrenderListWidget resizeList scrollBy'scrollTonotifySelectionHandlernotifyItemRemoveHandlernotifyItemAddHandlergetVisibleItemsgetVisibleItems_ $fShowList$fExceptionListErrorcentered_halves$fShowVCentered$fShowHCenteredrows numColumns columnSpecs borderStyle borderAttrdefaultCellAlignmentdefaultCellPaddingTableRow EmptyCellgetCellAlignmentgetCellPadding mkRowBorder mkRowBorder_mkTopBottomBorder mkSideBorder mkSideBorder_ positionRow autoWidthapplyCellAlignmentapplyCellPadding renderCell colBorders edgeBorders rowBorders rowHeight renderRow $fShowTable$fMonoidTableRow $fRowLike[]$fRowLikeIORef$fRowLikeTableCell$fRowLikeTableRow$fAlignableTableCell$fPaddableTableCell$fAlignableColumnSpec$fPaddableColumnSpec$fShowTableCell$fExceptionTableError buttonTextbuttonPressedHandlers$fHasFocusAttrButton$fHasNormalAttrButtondialogAcceptHandlersdialogCancelHandlers$fHasNormalAttrDialogprogressBarAmountonChangeHandlersprogressBarTextprogressBarTextAlignmentprogCompleteAttrprogIncompleteAttrprogTextWidgetrenderProgressBar$fShowProgressBardirBrowserListdirBrowserPathdirBrowserPathDisplaydirBrowserSelectionMapdirBrowserFileInfodirBrowserSkindirBrowserErrorWidgetdirBrowserChooseHandlersdirBrowserCancelHandlersdirBrowserPathChangeHandlers clearError cancelBrowsechooseCurrentEntryhandleSelectionChange getFileInfobuiltInAnnotationsfileAnnotationhandleBrowserKeystoreSelection getSelectionloaddescendascend currentEntry' $fShowGroupIOCollectionDataEntry entryWidgetentryFocusGroupentryShowCallbackentryHideCallback UserEventScheduledAction CombinedEvent ShutdownUiVTYEvent eventChanvtyEventListenerrunUi'entryRenderAndPositiongetMaybeCurrentEntrygetCurrentEntry$fShowCollectionData$fExceptionCollectionError