um\      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Safe &Specifies how the place looks where a O has been cut. Note that the cut mark may be cut itself, to fit into a column.#Display custom characters on a cut.)Use the same cut mark for left and right.Don't use a cut mark.BA single unicode character showing three dots is used as cut mark. Fill on the left until the  has the desired length. Fill on the right until the  has the desired length.%Fill on both sides equally until the  has the desired length.GFits to the given length by either trimming or filling it to the right.GFits to the given length by either trimming or filling it to the right.Fits to the given length by either trimming or filling it on both sides, but when only 1 character should be trimmed it will trim left. Applies a  to the left of a , while preserving the length. Applies a  to the right of a , while preserving the length.     SafeZVertical orientationHorizontal orientation./Specifies a position relative from a beginning.      Safe!aSpecifies how a header is layout, by omitting the cut mark it will use the one specified in the 0% like the other cells in that column.#>Groups rows together, which are not seperated from each other.&#Specifies an occurence of a letter.(<Determines whether a column will align at a specific letter.+%Determines how long a column will be.0!Specifies the layout of a column.!"#$%&'()*+,-./012345!"#$%&'()*+,-./012345012345+,-./()*&'#$%!"!"#$%&'()*+,-./012345SafeV6`Justifies texts and presents the resulting lines in a grid structure (each text in one column).7Justifies lists of words and presents the resulting lines in a grid structure (each list of words in one column). This is useful if you don't want to split just at whitespaces.8xMerges multiple columns together and merges them to a valid grid without holes. The following example clarifies this:VcolumnsAsGrid top [justifyText 10 "This text will not fit on one line.", ["42", "23"]]H[["This text","42"],["will not","23"],["fit on one",""],["line.",""]]9%Fill all sublists to the same length.:Uses 4 to split the text into words and justifies it with ;.4justifyText 10 "This text will not fit on one line."0["This text","will not","fit on one","line."];Fits as many words on a line, depending on the given width. Every line, but the last one, gets equally filled with spaces between the words, as far as possible.JMap inits with the first function and the last one with the last function.<Splits a given number into summands of 2 different values, where the first one is exactly one bigger than the second one. Splitting 40 spaces into 9 almost equal parts would result in:dimorphicSummands 40 9[5,5,5,5,4,4,4,4,4] 6789:;<=6789:;<=67:;<=89 6789:;<=Safe>SSpecifies the different letters to construct the non-content structure of a table.VMy usual ASCII table style.W:Uses special unicode characters to draw clean thin boxes. XSame as W but uses bold headers.YSame as W but uses round edges.ZUses bold lines.[KUses bold lines with exception of group seperators, which are striped slim.>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[SafeV!\/Specifies the length before and after a letter.]*Specifies how a column should be modified._.Allows columns to use as much space as needed.`(Fixes column length to a specific width.aCThe column will expand as long as it is smaller as the given width.b7The column will be at least as wide as the given width.cDon't align text.f*Align all text at the first dot from left.hJNumbers are positioned on the right and aligned on the floating point dot.i=Fixes the column length and positions according to the given .j2Fixes the column length and positions on the left.kCAssume the given length is greater or equal than the length of the  passed. Pads the given / accordingly, using the position specification.pad left 10 "foo" "foo "l#If the given text is too long, the  will be shortened according to the position specification, also adds some dots to indicate that the column has been trimmed in length, otherwise behaves like k.7trimOrPad left (singleCutMark "..") 10 "A longer text." "A longer.."mAlign a column by first finding the position to pad with and then padding the missing lengths to the maximum value. If no such position is found, it will align it such that it gets aligned before that position.This function assumes: ai <> deriveAlignInfo s = ainzAligns a column using a fixed width, fitting it to the width by either filling or cutting while respecting the alignment.o+Get the exact width after the modification.pRemove alignment from a ][. This is used to change alignment of headers, while using the combined width information.qWEnsures that the modification provides a minimum width, but only if it is not limited.rEnsures that the given $ will fit into the modified columns.s,Generates a function which modifies a given  according to 'Position H',  and ].t The column width when using the \.u Derive the ]: by using layout specifications and looking at the cells.v Generate the \ of a cell using the &.w&Modifies cells according to the given 0.x Behaves like  layoutCells/ but produces lines by joining with whitespace.y Behaves like  layoutCells but produces a ( by joining with the newline character.zqApplies functions alternating to given lines. This makes it easy to color lines to improve readability in a row.{Applies functions alternating to cells for every line, every other line gets shifted by one. This is useful for distinguishability of single cells in a grid arrangement.|*Construct a row group from a list of rows.~Layouts a good-looking table with a optional header. Note that specifying fewer layout specifications than columns or vice versa will result in not showing them.$Header columns are usually centered.ASince determining a maximum in two directions is not possible, a  instance is provided.No alignment is the default..\]^_`abcdefghijklmnopqrstuvwxyz{|}~GroupsOptional header detailsLayout specification of columnsVisual table style\!#&(+0678:;>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<0^hij+_`ab(cedfg&wxyz{#|!}~;:867klmn]opqrs\tuv*\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'(())*++,-./01234456789:;<=>?@AABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~^table_E874lojAXs86KBzdgsNAWL"Text.Layout.Table.Primitives.BasicText.Layout.Table.PositionText.Layout.Table.InternalText.Layout.Table.JustifyText.Layout.Table.StyleText.Layout.Table CutMarkSpeccutMark singleCutMark noCutMarkellipsisCutMarkspaces fillStart' fillStartfillEnd fillBoth'fillBoth fillLeft'fillLeft fillRight fillCenter' fillCenter fitRightWith fitLeftWith fitCenterWithapplyMarkLeftWithapplyMarkRightWithVHPositionStartCenterEndleftrightcentertopbottom$fDefaultPosition HeaderColSpecRowGrouprowsOccSpec AlignSpec AlignPredNoAlignLenSpecExpandFixed ExpandUntil FixedUntilColSpeclenSpecposition alignSpec cutMarkSpecjustifyTextsAsGridjustifyWordListsAsGrid columnsAsGridvpadCols justifyTextjustifydimorphicSummandsdimorphicSummandsBy TableStyle headerSepH headerSepLC headerSepRC headerSepC headerTopL headerTopR headerTopC headerTopHheaderVgroupV groupSepH groupSepC groupSepLC groupSepRC groupTopC groupTopL groupTopR groupTopH groupBottomC groupBottomL groupBottomR groupBottomH asciiRoundSunicodeSunicodeBoldHeaderS unicodeRoundS unicodeBoldSunicodeBoldStripedS AlignInfo ColModInfocolumnexpandfixed expandUntil fixedUntilnoAlign predAlign charAligndotAlign isAlignednumColfixedCol fixedLeftColpad trimOrPadalign alignFixedwidthCMI unalignedCMIensureWidthCMIensureWidthOfCMIcolumnModifierwidthAIderiveColModInfosderiveAlignInfo layoutToCells layoutToLineslayoutToStringaltLinescheckeredCellsrowGroup headerColumnlayoutTableToLineslayoutTableToStringbaseGHC.BaseStringleftMark rightMarkapplyMarkLeftBy$fShowCutMarkSpec$fDefaultCutMarkSpec Data.OldListwordsmapInitdimorphicSpaces$fDefaultHeaderColSpec$fMonoidAlignInfoMonoid$fDefaultAlignSpec FillAlignedFillToFitTo splitAtOcc$fDefaultLenSpec$fDefaultColSpecdatad_K91y8NcZUJI9yaBI61rgdDData.Default.ClassdefDefault