h&/      !"#$%&'()*+,-. Safe-Inferred"kvitableThe - specifies all valid values for a particular  in the . The set of / can be provided at the initialization of the  to ensure specific values are considered (especially if rendering includes blank rows or columns); if entries are added to the table with a  previously unknown for the , the < for the table is automatically updated to include the new .kvitableThe  is the list of tuples and defines the unique key for a value in the .kvitableThe  is the first half of a tuple that makes up the list of keys (the ). The first half is the .kvitableThe  is the first half of a tuple that makes up the list of keys (the ). The second half is the .kvitableThe core KeyValue Indexed Table. This table is similar to a Map, but the values are indexed by a list of Key+Value combinations, and the table contents can be sparse./kvitable!allowed value for keys (in order)0kvitableFunction to generate the keyval if the keyval is not explicitly provided. Provided with the Key and returns the KeyVal that should be used.1kvitable!Internal contents of the KVITable2kvitablename of the value cellskvitableConverts a list of ([(Key,Val)], Value) tuples to a KVI table.kvitable"Converts a KVI table to a list of ([(Key,Val)], Value) tuples.kvitableFetch or set the keyvals list via lenses. Note that setting the keyval list will drop any current contents in the table that do not have entries in the keyvals list. kvitableFetch or set the default  generator for this  kvitable?Fetch or set the column name for the actual value cell in the . kvitableRetrieve an entry from the KVITable given a keyspec. The keyspec may be minimally specified (i.e. it does not need to contain keys whose value is the default key value) and it may present the keys out of order and the lookup will still succeed (if there is a value for the normalized keyspec), but it will be faster to use the normalized key directly. kvitableInserts a new cell value into the table at the specified keyspec location. The keyspec may be minimally specified and out-of-order.This may be an expensive operation if it has to extend the keyvals for the table. In general, insertion is expected to be less frequent than lookups so computation costs are biased towards the insertion operation. kvitableThe foldlInsert is a convenience function that can be specified as the function argument of a foldl operation over the list form of a KVITable to generate the associated KVITable.kvitableFilter 9 to retain only the elements that satisfy some predicate.kvitable;Delete the value at the specified keyspec location in the . If the keyspec does not exist, the original table is returned.kvitable>Adjust a value at the specified keyspec; return the original + if that keyspec is not found in the table.kvitable>Adjust a value at the specified keyspec; return the original + if that keyspec is not found in the table.kvitable Update the  to remove or set a new value for the specified entry if the updating function returns Nothing or Just v, respectively. The update function is passed both the keyspec and the current value at that key. If the value does not exist in the table, the original table is returned.kvitable Update the  to remove or set a new value for the specified entry if the updating function returns Nothing or Just v, respectively. The update function is passed the value for the keyspec to be updated. If the value does not exist in the table, the original table is returned.kvitableThe ( function returns a set of rows for the  as a list structure, where each list entry is a different row. A row consists of the values of the keys for that row followed by the value of the entry (to get the names of the keys, use ).kvitableThe KVITable semigroup is left biased (same as Data.Map). Note that joining tables can result in a table that has a different keyVals sequence than either input table.    Safe-Inferred kvitableThe  specifies the various controls and configurations used when rendering a  in various formats. The ? is global t oall formats, although some of the fields in the 4 will be ignored as not-applicable by some formats.kvitable35 (default) removes rows for which there are no values kvitable38 (default) removes columns for which there are no values!kvitable3 (default) to maintain a consistent column width, otherwise the columns are shunk to the minimum size needed to display the title and values. Not applicable for some backends (e.g. HTML) where the backend provides table rendering functionality."kvitable3 (default is False) to sort the KeyVal entries when rendering a table.#kvitableColumn key to begin stacking keys in columns and sub-columns rather than creating additional sub-rows.$kvitable3 (default) if an identical 2 is to be repeated in subsequent applicable rows.%kvitableList of Key names that should by grouped by inserting horizontal row lines between KeyVals&kvitableCaption to render for table for backends which support captions; otherwise ignored.'kvitableReturns the default rendering configuration, to be used with a format-specific render call.(kvitableSorting for KeyVals. If the value starts or ends with a digit, then this should do a rough numeric sort on the expectation that the digits represent a version or some other numeric value. As an approximation of a numeric sort, sort by word size and then string value. This will result in [ "1", "2", "10", "50", "400" ], but would fail with [ "v1.0", "v2.0", "v3.0", "v2.0.5", "v1.0.0.3" ], but it's a reasonably fast heuristic and probably better than a straight ascii sort.This function is used by the  rendering functions.  !"#$%&'(  !"#$%&'( Safe-Inferred"k)kvitableRenders the specified table in ASCII format, using the specified  controls.4kvitableFormatted width of output, including pad on either side of each column's value (but not the outer set), and a separator between columns.Note that a column size of 0 indicates that hideBlankCols is active and the column was found to be empty of values, so it should not be counted.  !"#$%&') ) !"#$%&' Safe-Inferred"}*kvitableRenders the specified table in HTML format, using the specified # controls. The output is only the  table definition; it is intended to be embedded in a larger HTML document.  !"#$%&'* * !"#$%&'5       !!"#$%&'()*+,,-./0123456789'kvitable-1.0.2.1-3yoa9B2Tufw95V9EyYywTM Data.KVITableData.KVITable.RenderData.KVITable.Render.ASCIIData.KVITable.Render.HTMLKeyValsKeySpecKeyValKeyKVITablefromListtoListkeyVals keyValGen valueColNamelookupinsert foldlInsertfilterdelete adjustWithKeyadjust updateWithKeyupdaterows$fIsListKVITable$fTraversableKVITable$fFoldableKVITable$fFunctorKVITable$fMonoidKVITable$fSemigroupKVITable$fShowKVITable $fEqKVITable RenderConfig hideBlankRows hideBlankCols equisizedCols sortKeyVals colStackAt rowRepeatrowGroupcaptiondefaultRenderConfig sortWithNumsrender$fMonoidFmtLine$fSemigroupFmtLine$fSemigroupHeaderLine $fShowFmtValkeyvals keyvalGencontents valuecolNameghc-prim GHC.TypesTruefmtWidth