h$T}.      !"#$%&'()*+,-List utilities Safe-Inferred.haskell-formatterThe last element, or / if there is none.maybeLast [] == NothingmaybeLast (l ++ [e]) == Just e0haskell-formatterdropWhileAtMost p l is like  dropWhile p, but drops at most l elements.%dropWhileAtMost (== ' ') 2 " a bc " " a bc " 1haskell-formattermergeLongerSuccessions p c l keeps only the first c( elements of successive elements of l satisfying the predicate p.?mergeLongerSuccessions Data.Char.isSpace 2 " ab c d\LF e "" ab c d\n e " 2haskell-formatter takeEvery p l takes every pth element of l from the first one.takeEvery 2 "apple""ape"takeEvery 1 l == l3haskell-formatterconcatenateRuns p l repeatedly concatenates p lists of l.+concatenateRuns 2 ["a", "b", "c", "d", "e"]["ab","cd","e"] 4haskell-formatterconcatenateShiftedRuns p s l first takes s lists of l+, followed by repeatedly concatenating p lists.4concatenateShiftedRuns 2 1 ["a", "b", "c", "d", "e"]["a","bc","de"]=p <= 0 || concatenateShiftedRuns p 0 l == concatenateRuns p l.01234Naming data streams Safe-Inferred haskell-formatterAn informal reference to a data stream. For example, this could be the name of a file stream to be used in error messages. haskell-formatter Creates a . 5% is guaranteed to return this string.show (createStreamName s) == shaskell-formatter#The standard input stream (stdin). Container utilities Safe-Inferred 6haskell-formatter findJust f c returns the first non-/ value of c mapped with f , or / if there is none. 7haskell-formatter compose f5 returns the function composition of the elements of f. 8haskell-formatterorderByKey k l orders l by the sort keys generated by k. 9haskell-formatterhalfZipWith m b e zips the elements of b and e with m, using the structure of b. / is returned if and only if b$ does not have enough elements. :haskell-formatterLike ;*, but with a function to create the base. 6789: Splitting lists on sublists Safe-Inferred *<haskell-formatter separate d l splits l on the delimiters d, which are matched in the given order. The delimiters are not kept.,separate ["pineapple", "pine"] "0pineapple1" ["0","1"],separate ["pine", "pineapple"] "0pineapple1"["0","apple1"] <Handling Unicode newlines Safe-Inferredhaskell-formatterUnicode newline strings ordered by descending length. This corresponds to the set of newlines from  8http://www.unicode.org/standard/reports/tr13/tr13-5.html. haskell-formatter+Concatenates strings with default newlines "\n" between.Unlike =4, this does not append a newline to the last string.$joinSeparatedLines ["apple", "pine"]"apple\npine" haskell-formatter%Breaks a string up into its lines at +. The resulting strings do not contain .Unlike >, this interprets a newline as a separator, not a terminator. Thus, if the input string ends with a newline, the output list ends with the empty string.'splitSeparatedLines "0\n1\r2\r\n3\n\r4"["0","1","2","3","","4"]-last (splitSeparatedLines $ s ++ "\LF") == "" 'Facade for the location handling of HSE Safe-Inferred?@ABCDEFGHIJKLMNOPQRSTTrees with unique labels Safe-InferredR    )Parsing nested maps according to a formatNone Comments without location Safe-Inferred UVWXYZ[\]^_`a (Facade for HSE without location handlingNoneJ1bcdefghijklmnopqrstuvwxyz{|}~ .Exact syntax tree as parsed and printed by HSENoneErrors for feedback to usersNone Result with possible errorsNonecParametrization of formattingNonehaskell-formatter%Number of characters used to indent. %$#"! &Overall configurationNone*'()*Annotations of syntax trees Safe-InferredtSyntax tree typesNoneWorking with lines of codeNone7Invocation of the process parts with assertion checkingNoner:Detaching comments from the annotations of the syntax treeNone3Sorting parts of code where the order is irrelevantNone/.Rearranging the actual code (not the comments)None8Attaching comments to the annotations of the syntax treeNoneRearranging the commentsNoneFormatting process itselfNoneRRoot of formattingNone+,Haskell source code formatterNone%#"! $&'()*+,'()*+,%#"! $&)Sample format definition for a style fileNone?-- Safe-Inferredh !"#$%&'()*+,-.&/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSLTUVWXYZL[\ ]L^_L^`abcabdabeabf g h i j k L l m n o p q r s t u v w x y z { | } ~      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa779      IAI.haskell-formatter-2.0.3-LsNuey2t2Wi8ED6tlD7HpdLanguage.Haskell.Formatter+Language.Haskell.Formatter.Internal.Newline+Language.Haskell.Formatter.Internal.MapTree.Language.Haskell.Formatter.Internal.TreeFormat3Language.Haskell.Formatter.Internal.StyleFileFormat+Language.Haskell.Formatter.Toolkit.ListTool-Language.Haskell.Formatter.Toolkit.StreamName(Language.Haskell.Formatter.Toolkit.Visit+Language.Haskell.Formatter.Toolkit.Splitter#Language.Haskell.Formatter.Location&Language.Haskell.Formatter.CommentCore!Language.Haskell.Formatter.Source$Language.Haskell.Formatter.ExactCode Language.Haskell.Formatter.Error!Language.Haskell.Formatter.Result Language.Haskell.Formatter.Style(Language.Haskell.Formatter.Configuration'Language.Haskell.Formatter.Process.Note'Language.Haskell.Formatter.Process.Code+Language.Haskell.Formatter.Process.LineTool,Language.Haskell.Formatter.Process.Formatter1Language.Haskell.Formatter.Process.DetachComments/Language.Haskell.Formatter.Process.CodeOrdering3Language.Haskell.Formatter.Process.FormatActualCode1Language.Haskell.Formatter.Process.AttachComments1Language.Haskell.Formatter.Process.FormatComments*Language.Haskell.Formatter.Process.ControlLanguage.Haskell.Formatter.MainPaths_haskell_formatter StreamNamecreateStreamName standardInputnewlinesjoinSeparatedLinessplitSeparatedLines MapForestMapTreeLeafNodeisEmptysummarizeLeaves indentTree$fFunctorMapTree $fEqMapTree $fOrdMapTree $fShowMapTreeBooleanLimitedIntegerSingleFloating TreeFormat parseYamlFileErrorisAssertionError IndentationStylelineLengthLimitribbonsPerLinesuccessiveEmptyLinesLimitclassIndentation doIndentationcaseIndentationletIndentationwhereIndentationonsideIndentationorderImportDeclarationsorderImportEntities defaultStyle ConfigurationconfigurationStyleconfigurationStreamNamedefaultConfiguration defaultFormatformat treeFormat maybeLastbase GHC.MaybeNothingdropWhileAtMostmergeLongerSuccessions takeEveryconcatenateRunsconcatenateShiftedRunsGHC.ShowshowfindJustcompose orderByKey halfZipWithmapAccumulateLeftWithCreationData.Traversable mapAccumLseparate Data.OldListunlineslines.haskell-src-exts-1.23.1-GVIftkv0WzlF1sdfsy5X6RLanguage.Haskell.Exts.SrcLocSrcLocSrcSpan SrcSpanInfo getPointLocColumnLine Portioned getPortionminusplus streamNamegetLine getColumncreatePositiongetEndPositionreplaceNestedPortionLines stringPortion getStartLinegetStartColumn getEndLine getEndColumnDocumentationDisplacementNoneBeforeActualCodeAfterActualCodeKindOrdinaryNested CommentCorekindcontentcreatewrappedLineCountdocumentationDisplacementLanguage.Haskell.ExtsparseFileContentsWithCommentsparseFileContents Language.Haskell.Exts.ExactPrint exactPrint Language.Haskell.Exts.ParseMonaddefaultParseMode ParseResultParseOk ParseFailed parseFilenameLanguage.Haskell.Exts.CommentsCommentLanguage.Haskell.Exts.PrettyprettyPrimWithMode prettyPrim prettyPrintprettyPrintWithModeprettyPrintStyleMode defaultModePPLayout PPNoLayoutPPInLine PPOffsideRule PPSemiColonIndentPPHsMode linePragmaslayoutspacing onsideIndent whereIndent letIndent caseIndent multiIfIndent classIndentdoIndentPrettyLanguage.Haskell.Exts.Syntax=~=Modulepretty-1.1.3.6#Text.PrettyPrint.Annotated.HughesPJModePageMode ZigZagMode OneLineModeLeftModemode lineLengthstyle createComment commentCore ExactCode actualCodecommentscreateStyleFormatErrorcreateParseErrorcreateAssertionErrorResulttoEither fatalErrorfatalAssertionErrorcheckLocationCommentNote locationNote commentNoteIndentedCommentcommentStartColumn CommentBox ActualComment EmptyLine CommentNotecommentsBefore commentsAftercreateCommentNotecreateIndentedCommentcreateLocationCommentNotereplaceCommentBoxesreplaceCommentStartColumnreplaceCommentNoteLocatableCommentableCodeCommentableCode LocatableCode tryZipCodetryZipLocationsComments dropComments dropLocationsShiftShiftercountEmptyLines createShifter shiftCode FormatterattachCommentsdetachCommentsformatActualCodeformatCommentsorderRootImportEntitiesorderNestedImportEntitiesversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName