by¼      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None!"+BHM Comment with some more info.The normal comment type.,Where the comment lies relative to the node.Comment relative locations.%Information for each node in the AST. Location info from the parser. )Comments which are attached to this node. zConfigurations shared among the different styles. Styles may pay attention to or completely disregard this configuration. )Maximum columns to fit code into ideally.How many spaces to indent?0Remove spaces on lines that are otherwise empty?A printer style.5Name of the style, used in the commandline interface.>Author of the printer (as opposed to the author of the style).Description of the style.User state, if needed.Extenders to the printer.%Default config to use for this style.yA printer extender. Takes as argument the user state that the printer was run with, and the current node to print. Use  prettyNoExt% to fallback to the built-in printer. The state of the pretty printer.Current indentation level.The current output.Just outputted a newline? Current column.!Current line number." User state.# Extenders.$4Config which styles may or may not pay attention to.%/An end of line comment has just been outputted.&9Whether we're in a case statement, used for Rhs printing.'A pretty printing monad.*Default style configuration.-  !"#$%&'()*+  !"#$%&'()*+'() !"#$%& *      !"#$%&'()*None+ Empty state.-The printer style.+,-+,-+,-+,-None234EM).Pretty printing class./Pretty print using extenders.0Run the basic printer for the given node without calling an extension hook for this node, but do allow extender hooks in child nodes. Also auto-inserts comments.1Print comments of a node.2Pretty print a comment.3*Pretty print using HSE's own printer. The  class here is HSE's.4Get the user state.5Put the user state.6Modify the user state.7=Increase indentation level by n spaces for the given printer.8+Print all the printers separated by spaces.9+Print all the printers separated by commas.:(Print all the printers separated by sep.;-Print all the printers separated by newlines.<HPrint all the printers separated newlines and optionally a line prefix.=KSet the (newline-) indent level to the given column for the given printer.>Get the current indent level.?Get the current line number.@Output a newline.AASet the context to a case context, where RHS is printed with -> .B/Get the current RHS separator, either = or -> .CHMake the latter's indentation depend upon the end column of the former.DHMake the latter's indentation depend upon the end column of the former.EWrap in parens.FWrap in braces.GWrap in brackets.HWrite a space.IWrite a comma.JWrite an integral.K>Write out a string, updating the current position information.LWrite a string.MIndent spaces, e.g. 2.NColumn limit, e.g. 80OFPlay with a printer and then restore the state to what it was before.P No binds?QMaybe render a class context.#Maybe render an overlap definition.RFSwing the second printer below and indented with respect to the first.0Pretty print a name for being an infix operator.Render an expression.Render a declaration.[./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR%./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR%./0456K@HIJLQ21AB:8;<9EGF7=>?CDRMNPO3Z./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRNone3S Empty state.UA short function name.VColumn limit: 50WThe printer style.X!Pretty print type signatures likedfoo :: (Show x,Read x) => (Foo -> Bar) -> Maybe Int -> (Char -> X -> Y) -> IO ()Y0I want field updates to be dependent or newline.ZRight-hand sides are dependent.[Right-hand sides are dependent.\Unguarded case alts.]6Decide whether to do alts or rhs based on the context.^+I want guarded RHS be dependent or newline._,I want guarded alts be dependent or newline.a ExpressionsbYSandbox and render the nodes on multiple lines, returning whether each is a single line.cRender multi-line nodes.dqSandbox and render the node on a single line, return whether it's on a single line and whether it's overflowing.e.Is the expression "short"? Used for app heads.fIIs the given expression "small"? I.e. does it fit on one line and under V columns.gIs an expression flat?h>Does printing the given thing overflow column limit? (e.g. 80)i>Does printing the given thing overflow column limit? (e.g. 80)j4Is the given expression a single-liner when printed?lGMake the right hand side dependent if it's flat, otherwise newline it.STUVWXYZ[\]^_`abcdefghijklSTUVWXYZ[\]^_`abcdefghijklUVSTWXYZ[\]^_`abcdefghijklSTUVWXYZ[\]^_`abcdefghijklNone3HM n Empty state.qThe printer style.rNumber of spaces to indent by.sPrinter to indent one level.t{How many exports to format in a single line. If an export list has more than this, it will be formatted as multiple lines.vFormat whole modules.w.Format pragmas differently (language pragmas).xFormat patterns.yFormat import statements.zAFormat contexts with spaces and commas between class constraints.{IFormat deriving clauses with spaces and commas between class constraints.|"Format function type declarations.2mnopqrstuvwxyz{|}~2mnopqrstuvwxyz{|}~2nopqrstumvwxyz{|}~0mnopqrstuvwxyz{|}~None3 Empty state.A short function name.The printer style.3Handle do specially and also space out guards more.Handle do specially.$Implement dangling right-hand-sides.Unguarded case alts.Space out tuples.Expression customizations.!Pretty print type signatures likedfoo :: (Show x,Read x) => (Foo -> Bar) -> Maybe Int -> (Char -> X -> Y) -> IO ()=Specially format records. Indent where clauses only 2 spaces.$Use special record display, used by dataDecl in a record scenario.!Fields are preceded with a space.3Record decls are formatted like: Foo { bar :: X }Is the decl a record?>Does printing the given thing overflow column limit? (e.g. 80)4Is the given expression a single-liner when printed?.Is the expression "short"? Used for app heads.Is an expression flat?,rhs on field update on the same line as lhs.NoneEHM Format the given source.'Pretty print the given printable thing.AParse mode, includes all extensions, doesn't assume any fixities.,Test with the given style, prints to stdout.'Test with all styles, prints to stdout.KParse the source and annotate it with comments, yielding the resulting AST.2Styles list, useful for programmatically choosing.Annotate the AST with comments.Is the comment after the node?For After9, does the first span end before the second starts? For Before2, does the first span start after the second ends? -WqW-q       !"#$%&'())*+,,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR,,STUVWXYZ[\]^_`abcdefghijk,,lmnopqrstuvwxyz{|}~,,S^XZY_VfhceWi._V hindent-4.3.3 HIndent.TypesHIndent.Styles.FundamentalHIndent.PrettyHIndent.Styles.ChrisDoneHIndent.Styles.GibianskyHIndent.Styles.JohanTibellHIndentComInfocomInfoCommentcomInfoLocationComInfoLocationAfterBeforeNodeInfo nodeInfoSpannodeInfoCommentsConfigconfigMaxColumnsconfigIndentSpacesconfigClearEmptyLinesStyle styleName styleAuthorstyleDescriptionstyleInitialStatestyleExtendersstyleDefConfigExtenderCatchAll PrintState psIndentLevelpsOutput psNewlinepsColumnpsLine psUserState psExtenderspsConfig psEolComment psInsideCasePrinter runPrinter defaultConfigState fundamentalPrettypretty prettyNoExt printComments printCommentpretty'getStateputState modifyStateindentedspacedcommasinterlined prefixedLinedcolumn getColumn getLineNumnewlinewithCaseContext rhsSeparatordepend dependBindparensbracesbracketsspacecommaintwritestringgetIndentSpacesgetColumnLimitsandbox nullBindsmaybeCtxswing shortNamesmallColumnLimit chrisDonedecl fieldupdaterhs unguardedrhs unguardedaltcontextualGuardedRhs guardedrhs guardedaltstmtexpsandboxSinglesmultisandboxNonOverflowingisShortisSmallisFlat isOverflow isOverflowMax isSingleLinerinfixAppdependOrNewlineExtendgibianskyForceSingleLine gibiansky indentSpaces indentOncemaxSingleLineExportsattemptSingleLinemodlpragmaspatimpcontext derivingstyp writeTuplesameLine collectTypesexprsletExprappExprdoExprlistExprsingleLineList multiLineList dollarExprapplicativeExpropExpr lambdaExprcaseExprlambdaCaseExprifExpr writeCaseAlts recUpdateExprrhss guardedRhsrhsRestdeclsfunBodywriteWhereBindsonSeparateLines astStartLine isDoBlockcondeclsalt moduleHead exportList lineDelta fieldUpdate johanTibell qualConDeclconDeclrecDeclisRecordreformat prettyPrint parseModetesttestAlltestAststyles$fDefaultConfig$fEqPrintStatehaskell-src-exts-1.16.0.1Language.Haskell.Exts.Pretty maybeOverlap prettyInfixOpprettyInternal$fPrettyExportSpec$fPrettyExportSpecList$fPrettyWarningText$fPrettyImportSpec$fPrettyImportSpecList$fPrettyModuleName$fPrettyImportDecl$fPrettyModulePragma$fPrettyModuleHead$fPrettyTyVarBind $fPrettyQOp $fPrettyQName $fPrettyName$fPrettyLiteral $fPrettyKind$fPrettyFunDep$fPrettyDataOrNew$fPrettyIPBind$fPrettyBracket$fPrettyModule $fPrettySign$fPrettyOverlap$fPrettySpecialCon$fPrettyDeclHead$fPrettyInstHead$fPrettyInstRule$fPrettySplice $fPrettyRhs$fPrettyQualConDecl$fPrettyPatField $fPrettyMatch$fPrettyInstDecl$fPrettyGuardedRhs$fPrettyFieldUpdate$fPrettyFieldDecl$fPrettyConDecl$fPrettyClassDecl $fPrettyBinds$fPrettyBangType $fPrettyAsst $fPrettyAlt$fPrettyDeriving $fPrettyDecl$fPrettyQualStmt $fPrettyStmt $fPrettyExp $fPrettyType $fPrettyPat$fPrettyContextannotateCommentscommentLocatedspanTest