s      !"#$%&'()*+,-./0123456789:;<=>?@AB C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` 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#Specifies an occurence of a letter.:Construct an occurence specification by using a predicate.*Use an occurence specification to split a . Safe%Determines how long a column will be..Allows columns to use as much space as needed.(Fixes column length to a specific width.CThe column will expand as long as it is smaller as the given width.7The column will be at least as wide as the given width.  SafeSafe &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. YSpecify two different cut marks, one for cuts on the left and one for cuts on the right. <Use the cut mark on both sides by reversing it on the other. )Don't show any cut mark when text is cut.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.>A single ellipsis unicode character is used to show cut marks.     Safe<Determines whether a column will align at a specific letter. Don't align text.! Construct an & by giving an occurence specification."(Align at the first match of a predicate.#-Align text at the first occurence of a given .No alignment is the default. !"# !"# !"#Safe !"# !"#Safe$Vertical orientation%Horizontal orientation.&/Specifies a position relative from a beginning. $%&'()*+ $%&'()*+ $%&'()*+Safeb$%&'()*+&%$'()*+Safe,!Specifies the layout of a column.1&Smart constructor to specify a column.,-./012,0/.-1 ,-./0-./01,-./012Safe3HAn alias for lists, conceptually for values with a vertical arrangement.4JAn alias for lists, conceptually for values with a horizontal arrangement.5#Specifies how a header is rendered.7MGroups rows together, which should not be visually seperated from each other.:Group the given rows together.;Make a group of a single row.<Smart constructor for 5A. By omitting the cut mark it will use the one specified in the & like the other cells in that column.=$Header columns are usually centered. 3456789:;<= 3456789:;< 789:;56<=433456789:;<=Safe>xMerges 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  .? 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"]]@FFill all columns to the same length by aligning at the given position.AGFill all columns to the same length by aligning at the given positions.>?@A>?@AA@>?>?@A Safe\BUses 4 to split the text into words and justifies it with C.4justifyText 10 "This text will not fit on one line."0["This text","will not","fit on one","line."]CFits 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.DSplits 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]BCDEBCDECBDEBCDE Safe FSSpecifies the different letters to construct the non-content structure of a table.^My usual ASCII table style._Uses lines and plus for joints.`:Uses special unicode characters to draw clean thin boxes. aSame as ` but uses bold headers.bSame as ` but uses round edges.cUses bold lines.dKUses bold lines with exception of group seperators, which are striped slim.e$Draw every line with a double frame. FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde Safe!""fSpecifies a header.g/Specifies the length before and after a letter.h*Specifies how a column should be modified.i_Align all text at the first dot from the left. This is most useful for floating point numbers.jJNumbers are positioned on the right and aligned on the floating point dot.k=Fixes the column length and positions according to the given &.l2Fixes the column length and positions on the left.mCAssume 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#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 m.7trimOrPad left (singleCutMark "..") 10 "A longer text." "A longer.."oAlign 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 = aipzAligns a column using a fixed width, fitting it to the width by either filling or cutting while respecting the alignment.Private show function.q+Get the exact width after the modification.rRemove alignment from a h[. This is used to change alignment of headers, while using the combined width information.sWEnsures that the modification provides a minimum width, but only if it is not limited.tEnsures that the given $ will fit into the modified columns.u,Generates a function which modifies a given  according to ,  and h.Private show function.v The column width when using the g.w Derive the h: by using layout specifications and looking at the cells.x Generate the g of a cell using the .y5Modifies cells according to the column specification.z Behaves like y/ but produces lines by joining with whitespace.{ Behaves like z> but produces a string by joining with the newline character.~Applies functions to given lines in a alternating fashion. This makes it easy to color lines to improve readability in a row.Applies 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.OUses the columns to create a row group, using the given vertical positionings.NUses the columns to create a row group, using the given vertical positioning.(Specify a header column for every title.8Use titles with the default header column specification.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.Does the same as , but concatenates lines.No header is used by default.ASince determining a maximum in two directions is not possible, a  instance is provided.-fghijklmnopqrstuvwxyz{|}~Layout specification of columnsVisual table styleOptional header detailsRows which form a cell togetherLayout specification of columnsVisual table styleOptional header detailsRows which form a cell togetheri  "#$%&'()*+,13457:;<>?BCFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~G,1jkl&%'() #"i 4yz{7:;5<fCB3>?*+$|}~mnophqrstugvwx'fghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./01 2 3 4 5 6789:;<=>?@ABCDEFFGGHIJKLMNOP Q R S T U U V W X Y Z [ \ ] ^ _ ` 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 { | } ~            t  u   +table-layout-0.7.0.0-8eo4tbiy3DX801sdrtNj5X&Text.Layout.Table.Primitives.Occurence$Text.Layout.Table.Primitives.LenSpec"Text.Layout.Table.Primitives.Basic&Text.Layout.Table.Primitives.AlignSpecText.Layout.Table.Position#Text.Layout.Table.Primitives.ColumnText.Layout.Table.InternalText.Layout.Table.VerticalText.Layout.Table.JustifyText.Layout.Table.StyleText.Layout.Table-Text.Layout.Table.Primitives.LenSpec.Internal/Text.Layout.Table.Primitives.AlignSpec.Internal#Text.Layout.Table.Position.InternalText.Layout.Primitives.ColumnColSpec layoutToCellsPositionOccSpec predOccSpec splitAtOccLenSpecexpandfixed expandUntil fixedUntilCutMark doubleCutMark singleCutMark noCutMarkellipsisCutMarkspaces concatLines fillStart' fillStartfillEnd fillBoth'fillBoth fillLeft'fillLeft fillRight fillCenter' fillCenter fitRightWith fitLeftWith fitCenterWithapplyMarkLeftWithapplyMarkRightWith$fDefaultCutMark AlignSpecnoAlign occSpecAlign predAlign charAlignVHleftrightcentertopbottomlenSpecposition alignSpeccutMarkcolumn$fDefaultColSpecColRow HeaderColSpecRowGrouprowsrowsGrowG headerColumn$fDefaultHeaderColSpec colsAsRowsAll colsAsRowsvPadAllvPad justifyTextjustifydimorphicSummandsdimorphicSummandsBy TableStyle headerSepH headerSepLC headerSepRC headerSepC headerTopL headerTopR headerTopC headerTopHheaderVgroupV groupSepH groupSepC groupSepLC groupSepRC groupTopC groupTopL groupTopR groupTopH groupBottomC groupBottomL groupBottomR groupBottomH asciiRoundSasciiSunicodeSunicodeBoldHeaderS unicodeRoundS unicodeBoldSunicodeBoldStripedSunicodeDoubleFrameSHeader AlignInfo ColModInfodotAlignnumColfixedCol fixedLeftColpad trimOrPadalign alignFixedwidthCMI unalignedCMIensureWidthCMIensureWidthOfCMIcolumnModifierwidthAIderiveColModInfosderiveAlignInfogrid gridLines gridString layoutToLineslayoutToStringaltLinescheckeredCellscolsGcolsAllGfullHtitlesH tableLines tableStringlayoutTableToLineslayoutTableToString$fDefaultHeader$fMonoidAlignInfobaseGHC.BaseStringExpandFixed ExpandUntil FixedUntil$fDefaultLenSpecleftMark rightMarkapplyMarkLeftByghc-prim GHC.TypesChar$fDefaultAlignSpecAlignOccNoAlignStartCenterEnd$fDefaultPosition Data.OldListwordsmapInitdimorphicSpacesshowCMIshowAIMonoidNoHeader FillAlignedFillToFitTo/data-default-class-0.0.1-5309uyJgdI9AoYdGp1Vb6AData.Default.ClassDefaultdef