!]      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\] ^ _ ` 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 { | } ~   Safe;= C table-layoutVertical orientation table-layoutHorizontal orientation. table-layout/Specifies a position relative from a beginning. Safee Safe  table-layout&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.  table-layoutYSpecify two different cut marks, one for cuts on the left and one for cuts on the right.  table-layout<Use the cut mark on both sides by reversing it on the other.  table-layout)Don't show any cut mark when text is cut. table-layoutFill on the left until the  has the desired length. table-layoutFill on the right until the  has the desired length. table-layout%Fill on both sides equally until the  has the desired length. table-layoutGFits to the given length by either trimming or filling it to the right. table-layoutGFits to the given length by either trimming or filling it to the right. table-layoutFits 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. table-layout Applies a  to the left of a , while preserving the length. table-layout Applies a  to the right of a , while preserving the length. table-layout>A single ellipsis unicode character is used to show cut marks.  Safe& table-layoutHAn alias for lists, conceptually for values with a vertical arrangement. table-layoutJAn alias for lists, conceptually for values with a horizontal arrangement.  table-layout#Specifies how a header is rendered." table-layoutMGroups rows together, which should not be visually seperated from each other.% table-layoutGroup the given rows together.& table-layoutMake a group of a single row.' table-layoutSmart constructor for  A. By omitting the cut mark it will use the one specified in the  & like the other cells in that column.( table-layout$Header columns are usually centered.  !"#$%&' "#$%& !'Safe+) table-layout%Determines how long a column will be.* table-layout.Allows columns to use as much space as needed.+ table-layout(Fixes column length to a specific width., table-layoutCThe column will expand as long as it is smaller as the given width.- table-layout7The column will be at least as wide as the given width. )*+,-Safe+)*+,-)*+,-Safe/'. table-layout#Specifies an occurence of a letter./ table-layout:Construct an occurence specification by using a predicate.0 table-layout*Use an occurence specification to split a ../0./0Safe41 table-layout<Determines whether a column will align at a specific letter.2 table-layoutDon't align text.3 table-layout Construct an 1& by giving an occurence specification.4 table-layout(Align at the first match of a predicate.5 table-layout-Align text at the first occurence of a given . table-layoutNo alignment is the default.12345Safe41234512345Safe66 table-layout!Specifies the layout of a column.; table-layout&Smart constructor to specify a column.6:987;6789:;Safe?z = table-layoutSSpecifies the different letters to construct the non-content structure of a table.U table-layoutMy usual ASCII table style.V table-layoutUses lines and plus for joints.W table-layout:Uses special unicode characters to draw clean thin boxes. X table-layoutSame as W but uses bold headers.Y table-layoutSame as W but uses round edges.Z table-layoutUses bold lines.[ table-layoutKUses bold lines with exception of group seperators, which are striped slim.\ table-layout$Draw every line with a double frame. =>TSRQPONMLKJIHGFEDCBA@?UVWXYZ[\ =>TSRQPONMLKJIHGFEDCBA@?UVWXYZ[\ SafeL] table-layoutxMerges multiple columns together and merges them to a valid grid without holes. The following example clarifies this:VcolsAsRowsAll top [justifyText 10 "This text will not fit on one line.", ["42", "23"]]H[["This text","42"],["will not","23"],["fit on one",""],["line.",""]]CThe result is intended to be used with a grid layout function like  .^ table-layout Works like ]4, but every position can be specified on its own:EcolsAsRows [top, center, bottom] [["a1"], ["b1", "b2", "b3"], ["c3"]],[["a1","b1",""],["","b2",""],["","b3","c3"]]_ table-layoutFFill all columns to the same length by aligning at the given position.` table-layoutGFill all columns to the same length by aligning at the given positions.]^_``_]^ Safe^Ya table-layoutUses 4 to split the text into words and justifies it with b.4justifyText 10 "This text will not fit on one line."0["This text","will not","fit on one","line."]b table-layoutFits 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. table-layoutJMap inits with the first function and the last one with the last function. table-layoutGSpread out spaces with different widths more evenly (in comparison to ).c table-layoutSplits 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]e table-layout4Spread out summands evenly mixed as far as possible.abcdebacde Safe"#"f table-layoutSpecifies a header.g table-layoutaSpecifies the length before and after an alignment position (including the alignment character).h table-layout{Specifies how a column should be modified. Values of this type are derived in a traversal over the input columns by using w . Finally, ua will interpret them and apply the appropriate modification function to the cells of the column.i table-layout_Align all text at the first dot from the left. This is most useful for floating point numbers.j table-layoutJNumbers are positioned on the right and aligned on the floating point dot.k table-layout=Fixes the column length and positions according to the given .l table-layout2Fixes the column length and positions on the left.m table-layoutCAssume 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 "n table-layout#If the given text is too long, the  will be shortened according to the position specification. Adds cut marks to indicate that the column has been trimmed in length, otherwise it behaves like m.7trimOrPad left (singleCutMark "..") 10 "A longer text." "A longer.."o table-layoutAlign a  by first locating the position to align with and then padding on both sides. If no such position is found, it will align it such that it gets aligned before that position.nlet { os = predOccSpec (== '.') ; ai = deriveAlignInfo os "iiii.fff" } in align os ai <$> ["1.5", "30", ".25"]"[" 1.5 "," 30 "," .25 "]%This function assumes that the given  fits the g. Thus: ai <> deriveAlignInfo s = aip table-layout Aligns a k using a fixed width, fitting it to the width by either filling or cutting while respecting the alignment. table-layoutPrivate show function.q table-layoutGet the exact width of a h after applying it with u.r table-layoutRemove alignment from a hZ. This is used to change alignment of headers while using the combined width information.s table-layoutVEnsures that the modification provides a minimum width but only if it is not limited.t table-layoutEnsures that the given $ will fit into the modified columns.u table-layout,Generates a function which modifies a given  according to ,  and h. table-layoutPrivate show function.v table-layout The column width when using the g.w table-layout Derive the hB by using layout specifications and the actual cells of a column.x table-layout Generate the g of a cell by using the ..y table-layout5Modifies cells according to the column specification.z table-layout Behaves like y/ but produces lines by joining with whitespace.{ table-layout Behaves like z> but produces a string by joining with the newline character.| table-layout~Applies functions to given lines in a alternating fashion. This makes it easy to color lines to improve readability in a row.} table-layoutApplies functions to cells in a alternating fashion for every line, every other line gets shifted by one. This is useful for distinguishability of single cells in a grid arrangement.~ table-layout Create a "P by aligning the columns vertically. The position is specified for each column. table-layout Create a "U by aligning the columns vertically. Each column uses the same vertical positioning. table-layout(Specify a header column for every title. table-layout8Use titles with the default header column specification. table-layoutLayouts a good-looking table with an optional header. Note that specifying fewer layout specifications than columns or vice versa will result in not showing the redundant ones. table-layoutDoes the same as , but concatenates lines. table-layout Produce an g3 that is wide enough to hold inputs of both given gs. table-layoutNo header is used by default. table-layoutLayout specification of columns table-layoutVisual table style table-layoutOptional header details table-layoutRows which form a cell together table-layoutLayout specification of columns table-layoutVisual table style table-layoutOptional header details table-layoutRows which form a cell togetherc  "%&')*+,-.12456;=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^abfghijklmnopqrstuvwxyz{|}~A6;jkl)*+,-1254i yz{|}"%&~ 'fba]^mnophqrstugvwx.         !"#$%&'()*+,-./012233456789:;<=>?@ABCDEFGHIJKLLMNOPQRSTUVWXYZ[\]^_`abcdefghij k l m n o p q r s t u v w x y z { | } ~     +table-layout-0.8.0.2-E1GKNdfHYNWCf7rUO2LmmYText.Layout.Table.Position"Text.Layout.Table.Primitives.BasicText.Layout.Table.Internal$Text.Layout.Table.Primitives.LenSpec&Text.Layout.Table.Primitives.Occurence&Text.Layout.Table.Primitives.AlignSpec#Text.Layout.Table.Primitives.ColumnText.Layout.Table.StyleText.Layout.Table.VerticalText.Layout.Table.JustifyText.Layout.Table#Text.Layout.Table.Position.InternalText.Layout.Primitives.ColumnColSpec-Text.Layout.Table.Primitives.LenSpec.Internal/Text.Layout.Table.Primitives.AlignSpec.Internal layoutToCellsPositionVHleftrightcentertopbottomCutMark doubleCutMark singleCutMark noCutMarkspaces concatLines fillStart' fillStartfillEnd fillBoth'fillBoth fillLeft'fillLeft fillRight fillCenter' fillCenter fitRightWith fitLeftWith fitCenterWithapplyMarkLeftWithapplyMarkRightWith$fDefaultCutMarkColRow HeaderColSpecRowGrouprowsrowsGrowG headerColumn$fDefaultHeaderColSpecLenSpecexpandfixed expandUntil fixedUntilOccSpec predOccSpec splitAtOcc AlignSpecnoAlign occSpecAlign predAlign charAlignlenSpecposition alignSpeccutMarkcolumn$fDefaultColSpec TableStyle headerSepH headerSepLC headerSepRC headerSepC headerTopL headerTopR headerTopC headerTopHheaderVgroupV groupSepH groupSepC groupSepLC groupSepRC groupTopC groupTopL groupTopR groupTopH groupBottomC groupBottomL groupBottomR groupBottomH asciiRoundSasciiSunicodeSunicodeBoldHeaderS unicodeRoundS unicodeBoldSunicodeBoldStripedSunicodeDoubleFrameS colsAsRowsAll colsAsRowsvPadAllvPad justifyTextjustifydimorphicSummandsdimorphicSummandsBymixedDimorphicSummandsByHeader AlignInfo ColModInfodotAlignnumColfixedCol fixedLeftColpad trimOrPadalign alignFixedwidthCMI unalignedCMIensureWidthCMIensureWidthOfCMIcolumnModifierwidthAIderiveColModInfosderiveAlignInfogrid gridLines gridStringaltLinescheckeredCellscolsGcolsAllGfullHtitlesH tableLines tableString$fMonoidAlignInfo$fSemigroupAlignInfo$fDefaultHeaderEndCenterStartbaseGHC.BaseStringFixedExpand ExpandUntil FixedUntilghc-prim GHC.TypesChar$fDefaultAlignSpecAlignOccNoAlign Data.OldListwordsmapInitmixedDimorphicSpacesdimorphicSpacesshowCMIshowAI1data-default-class-0.1.2.0-2kYzERBLX3wJoPfj7mwVvWData.Default.ClassDefaultdef