b/R*      !"#$%&'()Container utilities  Safe-Inferred* findJust f c returns the first non-+ value of c mapped with f,  or + if there is none. , compose f5 returns the function composition of the elements of f. -orderByKey k l orders l by the sort keys generated by k. .halfZipWith 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. /Like 0+, but with a function to create the base. *,-./*,-./*,-./List utilities  Safe-Inferred1The last element, or + if there is none. maybeLast [] == NothingmaybeLast (l ++ [e]) == Just e2mergeConsecutiveElements i l- keeps only the first element of consecutive  elements of l satisfying the predicate i. =mergeConsecutiveElements Data.Char.isSpace " ab c d\LF e " " ab c d\ne "3 takeEvery p l takes every pth element of l from the first one. takeEvery 2 "apple""ape"takeEvery 1 l == l4concatenateRuns p l repeatedly concatenates p lists of l. +concatenateRuns 2 ["a", "b", "c", "d", "e"]["ab","cd","e"] 5concatenateShiftedRuns 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 l123451234512345Splitting lists on sublists  Safe-Inferred6!What to do with the delimiters? 7'Strategy to split a list on sublists. 8 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"] 9 split s l splits l according to the strategy s. : rawSplit s l splits l on the sublists s, keeping the separators. +odd . length $ separate ["apple", "pine"] l;stripFirstPrefix 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 6<=>?7@AB89:;86?>=<7@AB89:;Handling Unicode newlines  Safe-InferredJUnicode newline strings ordered by descending length. This corresponds to  the set of newlines from   8http://www.unicode.org/standard/reports/tr13/tr13-5.html. +Concatenates strings with default newlines "\n" between. Unlike C5, this does not append a newline to the last string. $joinSeparatedLines ["apple", "pine"]"apple\npine" %Breaks a string up into its lines at . The resulting strings do  not contain . Unlike D>, this interprets a newline as a separator, not a terminator. Q 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") == "" Comments without location  Safe-InferredEFGHIJKLMNOPQRS EFGHIJKLNOPQREHGFIKJLMNOPQRSTrees with unique labels  Safe-Inferred T   T*Parsing nested maps according to a format None U VWXYZ   U  VWXYZ Naming data streams  Safe-InferredLAn informal reference to a data stream. For example, this could be the name 4 of a file stream to be used in error messages.  Creates a . [& is guaranteed to return this string. show (createStreamName s) == s$The standard input stream (stdin). \]\] (Facade for the location handling of HSE  Safe-Inferred^_`abcdefghijklmnopqrstuvwxyz{|}~^`bcefghijklmopqrs^_`abcdefghijklmnopqrstuvwxyz )Facade for HSE without location handling None. /Exact syntax tree as parsed and printed by HSE NoneAnnotations of syntax trees  Safe-InferredErrors for feedback to users None Result with possible errors NoneParametrization of formatting None&Number of characters used to indent.  ! !  !Syntax tree types None9Attaching comments to the annotations of the syntax tree None  4Sorting parts of code where the order is irrelevant None  Shifting lines of code None;Detaching comments from the annotations of the syntax tree None             /Rearranging the actual code (not the comments) NoneRearranging the comments None8Invocation of the process parts with assertion checking None !"#$%&'()*+,- !"#&  !"#$%&'()*+,-Formatting process itself None./../Overall configuration None"#$%&0"#$%&0"#$%&0Root of formatting None'(12'('(12Haskell source code formatter None !"#$%&'("#$%&'( !*Sample format definition for a style file None))))3 !"#$%&#'()*+ , - ./01223456789:;<==>?@ABCDEFGHIJKELMNOPQRSTUVWXYZ[\T]^E_`E_a b c d e f g h i i j k l m n opqrstuvEwx , y z z { { | } ~ E   224   l    ;   !" #$%&<'()*+,,%)-.B/012345B6789haskell-formatter-0.1.0+Language.Haskell.Formatter.Internal.Newline+Language.Haskell.Formatter.Internal.MapTree.Language.Haskell.Formatter.Internal.TreeFormatLanguage.Haskell.Formatter3Language.Haskell.Formatter.Internal.StyleFileFormat(Language.Haskell.Formatter.Toolkit.Visit+Language.Haskell.Formatter.Toolkit.ListTool+Language.Haskell.Formatter.Toolkit.Splitter&Language.Haskell.Formatter.CommentCore-Language.Haskell.Formatter.Toolkit.StreamName#Language.Haskell.Formatter.Location!Language.Haskell.Formatter.Source$Language.Haskell.Formatter.ExactCode'Language.Haskell.Formatter.Process.Note Language.Haskell.Formatter.Error!Language.Haskell.Formatter.Result Language.Haskell.Formatter.Style'Language.Haskell.Formatter.Process.Code1Language.Haskell.Formatter.Process.AttachComments/Language.Haskell.Formatter.Process.CodeOrdering/Language.Haskell.Formatter.Process.LineShifting1Language.Haskell.Formatter.Process.DetachComments3Language.Haskell.Formatter.Process.FormatActualCode1Language.Haskell.Formatter.Process.FormatComments,Language.Haskell.Formatter.Process.Formatter*Language.Haskell.Formatter.Process.Control(Language.Haskell.Formatter.ConfigurationLanguage.Haskell.Formatter.MainnewlinesjoinSeparatedLinessplitSeparatedLines MapForestMapTreeNodeLeafisEmptysummarizeLeaves indentTreeSingleFloatingLimitedIntegerBoolean TreeFormat parseYamlFile StreamNamecreateStreamName standardInputErrorisAssertionError IndentationStylelineLengthLimitribbonsPerLineclassIndentation doIndentationcaseIndentationletIndentationwhereIndentationonsideIndentationorderImportDeclarationsorderImportEntities ConfigurationconfigurationStyleconfigurationStreamNamedefaultConfiguration defaultFormatformat treeFormatfindJustbase Data.MaybeNothingcompose orderByKey halfZipWithmapAccumulateLeftWithCreationData.Traversable mapAccumL maybeLastmergeConsecutiveElements takeEveryconcatenateRunsconcatenateShiftedRunsDelimiterPolicySplitterseparatesplitrawSplitstripFirstPrefix MergeRight MergeLeftSeparateDropdelimiterPolicydelimiterQueue Data.ListunlineslinesDocumentationDisplacementNoneAfterActualCodeBeforeActualCodeKindNestedOrdinary CommentCorekindcontentcreatewrappedLineCountdocumentationDisplacement$fShowCommentCore$fFunctorMapTreeRawLeafdefaultInterpret interpret matchTree matchLeafunexpectedMessageGHC.Showshow$fShowStreamNameColumnLine Portioned getPortionNaturalplusminus streamNamegetLine getColumncreatePositiongetEndPositionreplaceNestedPortionLinesreplacePortionLines stringPortion getStartLinegetStartColumn getEndLine getEndColumn$fPortionedComment$fPortionedModule$fPortionedSrcSpanInfo$fNaturalColumn $fNaturalLine $fEnumColumn $fEnumLinehaskell-src-exts-1.15.0.1Language.Haskell.Exts.SrcLocSrcLocSrcSpan SrcSpanInfo getPointLoc createComment commentCore commentKindcommentContentLanguage.Haskell.Exts.AnnotatedparseFileContentsWithCommentsparseFileContentsLanguage.Haskell.Exts.Pretty prettyPrintprettyPrintWithModeprettyPrintStyleMode defaultMode PPOffsideRule PPSemiColonPPInLine PPNoLayoutPPLayoutIndent linePragmaslayoutspacing onsideIndent whereIndent letIndent caseIndentdoIndent classIndentPPHsModePrettypretty-1.1.1.0Text.PrettyPrint.HughesPJstyleModeLeftMode OneLineModePageMode ZigZagMode lineLengthmode Language.Haskell.Exts.ParseMonaddefaultParseModeParseOk ParseFailed ParseResult parseFilename*Language.Haskell.Exts.Annotated.ExactPrint exactPrintLanguage.Haskell.Exts.CommentsComment&Language.Haskell.Exts.Annotated.Syntax=~=Module ExactCode actualCodecomments$fShowExactCodeLocationCommentNote locationNote commentNoteIndentedCommentcommentStartColumn CommentBox EmptyLine ActualComment CommentNotecommentsBefore commentsAftercreateCommentNotecreateIndentedCommentcreateLocationCommentNotereplaceCommentBoxesreplaceCommentBoxreplaceIndentedCommentreplaceCommentStartColumnreplaceCommentNote$fPortionedLocationCommentNote$fMonoidCommentNoteAssertionError ParseErrorStyleFormatErrorcreateStyleFormatErrorcreateParseErrorcreateAssertionError $fShowErrorResulttoEither fatalErrorfatalAssertionError $fMonadResult$fApplicativeResult$fFunctorResultCheck defaultStylecheck createChecks createCheckLocatableCommentableCodeCommentableCode LocatableCodetryZipLocationsComments dropComments dropLocations AssignmentattachCommentsspread assignForCodeassignComments assignBeforeassignSingleton assignAfterdivideCommentscreateCommentsorderByStartEnd$fMonoidAssignmentreplaceImportDeclarationsimportEntityKey rootNameKeynameKeynestedImportEntityKeyorderRootImportEntitiesreplaceImportEntitiesorderNestedImportEntitiesreplaceNestedImportEntitiesShiftShifter createShifternoShift shiftCode shiftLine lookupShift ReservationdetachCommentsreservationShifter commentsShift commentShiftreserveForCodereserveForNoteaccumulateReservation$fMonoidReservationformatActualCodepreparedefaultPrettyPrintrenderingStyleformatCommentsindentToLineStartmergeConsecutiveEmptyLines FormatterCodedgetCodecheckedAttachCommentstransformNotestransformWithCheckcheckedFormatCommentscheckedDetachComments$fCodedExactCode $fCodedModulecreateFormatter tryFormatparse