!^0R<.      !"#$%&'()*+,-List utilitiesSafe.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 streamsSafehaskell-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 utilitiesSafe!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 sublistsSafe/ <haskell-formatter What to do with the delimiters? =haskell-formatter&Strategy to split a list on sublists. >haskell-formatter separate d l splits l on the delimiters dH, which are matched in the given order. The delimiters are not kept.,separate ["pineapple", "pine"] "0pineapple1" ["0","1"],separate ["pine", "pineapple"] "0pineapple1"["0","apple1"] ?haskell-formatter split s l splits l according to the strategy s. @haskell-formatter rawSplit s l splits l on the sublists s, keeping the separators.+odd . length $ separate ["apple", "pine"] lAhaskell-formatterstripFirstPrefix p l returns the first element of p which is a prefix of l and the rest of l . It returns / if there is no such element.6stripFirstPrefix ["\LF", "\CR\LF", "\CR"] "\CR\LFpine"Just ("\r\n","pine")&stripFirstPrefix ["apple"] "pineapple"Nothing >Handling Unicode newlinesSafe;haskell-formatterkUnicode 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 B4, 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 C, 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 HSESafe<DEFGHIJKLMNOPQRSTUVWXYTrees with unique labelsSafe=u    )Parsing nested maps according to a formatNone> Comments without locationSafe?U Z[\]^_`abcdef (Facade for HSE without location handlingNone@b1ghijklmnopqrstuvwxyz{|}~ .Exact syntax tree as parsed and printed by HSENoneBErrors for feedback to usersNoneBResult with possible errorsNoneCParametrization of formattingNoneE(haskell-formatter%Number of characters used to indent. %$#"! &Overall configurationNoneE')(*Annotations of syntax treesSafeFSyntax tree typesNoneGoWorking with lines of codeNoneH,7Invocation of the process parts with assertion checkingNoneIU:Detaching comments from the annotations of the syntax treeNoneJ3Sorting parts of code where the order is irrelevantNoneK.Rearranging the actual code (not the comments)NoneL8Attaching comments to the annotations of the syntax treeNoneMRearranging the commentsNoneNRFormatting process itselfNoneNRoot of formattingNoneOx+,Haskell source code formatterNoneP-$ !"#%&'()*+,'()*+,$ !"#%&)Sample format definition for a style fileNoneQ--SafeR !"#$%&'()*+,-.&/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSLTUVWXYZL[\ ] ^ _ ` a bLcdLcefghfgifgjfgk l m n o p q L r s t u v w x y z { | } ~       ffffffffffffffffffffffffffffffffffff779  IAI.haskell-formatter-2.0.0-2mSZMERXGd51RwWIZsZ2X4Language.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 mapAccumLDelimiterPolicySplitterseparatesplitrawSplitstripFirstPrefix Data.OldListunlineslines.haskell-src-exts-1.21.0-1MqMUIJU7y29AVS9NHxlR4Language.Haskell.Exts.SrcLocSrcLocSrcSpan SrcSpanInfo getPointLocColumnLine Portioned getPortionminusplus streamNamegetLine getColumncreatePositiongetEndPositionreplaceNestedPortionLines stringPortion getStartLinegetStartColumn getEndLine getEndColumnDocumentationDisplacementNoneBeforeActualCodeAfterActualCodeKindOrdinaryNested CommentCorecontentkindcreatewrappedLineCountdocumentationDisplacementLanguage.Haskell.ExtsparseFileContentsWithCommentsparseFileContents Language.Haskell.Exts.ExactPrint exactPrint Language.Haskell.Exts.ParseMonaddefaultParseMode ParseResultParseOk ParseFailed parseFilenameLanguage.Haskell.Exts.CommentsCommentLanguage.Haskell.Exts.PrettyprettyPrimWithMode prettyPrim prettyPrintprettyPrintWithModeprettyPrintStyleMode defaultModePPLayout PPOffsideRule PPSemiColonPPInLine PPNoLayoutIndentPPHsMode classIndentdoIndent multiIfIndent caseIndent letIndent whereIndent onsideIndentspacinglayout linePragmasPrettyLanguage.Haskell.Exts.Syntax=~=Modulepretty-1.1.3.6#Text.PrettyPrint.Annotated.HughesPJMode OneLineModeLeftMode ZigZagModePageMode lineLengthmodestyle createComment commentCore ExactCodecomments actualCodecreateStyleFormatErrorcreateParseErrorcreateAssertionErrorResulttoEither fatalErrorfatalAssertionErrorcheckLocationCommentNote commentNote locationNoteIndentedCommentcommentStartColumn CommentBox ActualComment EmptyLine CommentNote commentsAftercommentsBeforecreateCommentNotecreateIndentedCommentcreateLocationCommentNotereplaceCommentBoxesreplaceCommentStartColumnreplaceCommentNoteLocatableCommentableCodeCommentableCode LocatableCode tryZipCodetryZipLocationsComments dropComments dropLocationsShiftShiftercountEmptyLines createShifter shiftCode FormatterattachCommentsdetachCommentsformatActualCodeformatCommentsorderRootImportEntitiesorderNestedImportEntitiesversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName