úÎ{Üpf      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œ|(c) Simon Marlow 2003-2006, David Waern 2006-2009, Mateusz Kowalczyk 2013BSD-likehaddock@projects.haskellorg experimentalportableSafe345Y-With the advent of (´, we may want to start attaching more meta-data to comments. We make a structure for this ahead of time so we don't have to gut half the core each time we want to add such info.1  !#"$%'&()*,+-./01-./)*+,0($%&' !"#   !"#$%&')*+,-./NoneFKT>HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…?cdefab†ghijklmnopqrstuvwxyz{|}~€‚ƒ„…]\^_YX`W[ZVUNSRQPOMLKJIHTabcdeK(c) Mateusz Kowalczyk 2013-2014, Simon Hengel 2013BSD-likehaddock@projects.haskell.org experimentalportableNone»*Remove all leading and trailing whitespacež!Remove escapes from given string.GOnly do this if you do not process (read: parse) the input any further.Ÿ ¡¢ž£SafeA Concat using ’.Like Ž but also joins the - info.‘›We do something perhaps unexpected here and join the meta info in reverse : this results in the metadata from the latest  paragraphs taking precedence.’'This is not a monoidal append, it uses ¤ for the /.Ž‘’“”••”Ž‘“’Safe!9– Helper that encodes and packs a ¥ into a ¦—"Helper that unpacks and decodes a ¦ into a ¥§Character to use when ¨ or © fail for a byte.¨BEncode a Haskell String to a list of Word8 values, in UTF8 format.©KDecode a UTF8 string packed into a list of Word8 values, directly to String–—–—K(c) Mateusz Kowalczyk 2013-2014, Simon Hengel 2013BSD-likehaddock@projects.haskell.org experimentalportableNone%p8*˜GIdentifier string surrounded with opening and closing quotes/backticks.™TDrops the quotes/backticks around all identifiers, as if they were valid but still ¥s.š Maps over s over ¥« with potentially failing conversion using user-supplied function. If the conversion fails, the identifier is deemed to not be valid and is treated as a regular string.›SMain entry point to the parser. Appends the newline character to the input string.œ5Parse a text paragraph. Actually just a wrapper over ªF which drops leading whitespace and encodes the string to UTF8 first.«Parses and processes 9https://en.wikipedia.org/wiki/Numeric_character_referenceNumeric character referencesparseString "&#65;" DocString "A"¬ºList of characters that we use to delimit any special markup. Once we have checked for any of these and tried to parse the relevant markup, we can assume they are used as regular text.­®Plain, regular parser for text. Called as one of the last parsers to ensure that we have already given a chance to more meaningful parsers before capturing their characers.®ÉSkips a single special character and treats it as a plain string. This is done to skip over any special characters belonging to other elements but which were not deemed meaningful at their positions.¯Emphasis parser.parseString "/Hello world/"%DocEmphasis (DocString "Hello world")° Bold parser.parseString "__Hello world__"!DocBold (DocString "Hello world")±Like |., but unconditionally take escaped characters.²Like }., but unconditionally take escaped characters.³EText anchors to allow for jumping around the generated documentation.parseString "#Hello world#"DocAName "Hello world"´Monospaced strings.parseString "@cruel@"!DocMonospaced (DocString "cruel")µ™Module names: we try our reasonable best to only allow valid Haskell module names, with caveat about not matching on technically valid unicode symbols.¶[Picture parser, surrounded by << and >>. It's possible to specify a title for the picture.parseString "<<hello.png>>"CDocPic (Picture {pictureUri = "hello.png", pictureTitle = Nothing})!parseString "<<hello.png world>>"HDocPic (Picture {pictureUri = "hello.png", pictureTitle = Just "world"})·,Inline math parser, surrounded by \( and \).IparseString "\\(\\int_{-\\infty}^{\\infty} e^{-x^2/2} = \\sqrt{2\\pi}\\)"EDocMathInline "\\int_{-\\infty}^{\\infty} e^{-x^2/2} = \\sqrt{2\\pi}"¸-Display math parser, surrounded by \[ and \].IparseString "\\[\\int_{-\\infty}^{\\infty} e^{-x^2/2} = \\sqrt{2\\pi}\\]"FDocMathDisplay "\\int_{-\\infty}^{\\infty} e^{-x^2/2} = \\sqrt{2\\pi}"¹Paragraph parser, called by ›.º(Headers inside the comment denoted with = signs, up to 6 levels deep."snd <$> parseOnly header "= Hello"MRight (DocHeader (Header {headerLevel = 1, headerTitle = DocString "Hello"}))#snd <$> parseOnly header "== World"MRight (DocHeader (Header {headerLevel = 2, headerTitle = DocString "World"}))» Parses unordered (bullet) lists.¼*Parses ordered lists (numbered or dashed).½ŸGeneric function collecting any further lines belonging to the list entry and recursively collecting any further lists in the same paragraph. Usually used as >someListFunction = listBeginning *> innerList someListFunction¾Parses definition lists.¿Drops all trailing newlines.ÀMain worker for ½ and ¾. We need the Áu here to be able to tell in the respective functions whether we're dealing with the next list or a nested paragraph.ÂUsed by ½ and ¾ to parse any nested paragraphs.Ã5Attempts to fetch the next list if possibly. Used by ½ and ¾G to recursively grab lists that aren't separated by a whole paragraph.Ä Helper for ½ and ¾Q which simply takes a line of text and attempts to parse more list content with À.Å;Parses an indented paragraph. The indentation is 4 spaces.Æ1Grab as many fully indented paragraphs as we can.Ç-Takes a non-empty, not fully whitespace line.%Doesn't discard the trailing newline.È*Takes indentation of first non-empty line.ƒMore precisely: skips all whitespace-only lines and returns indentation (horizontal space, might be empty) of that non-empty line.ÉBlocks of text of the form: > foo > bar > bazÊzParses examples. Examples are a paragraph level entitity (separated by an empty line). Consecutive examples are accepted.ËProperty parser..snd <$> parseOnly property "prop> hello world"!Right (DocProperty "hello world")ÌWParagraph level codeblock. Anything between the two delimiting @ is parsed for markup.Í[Looks for URL-like things to automatically hyperlink even if they weren't marked as links.ÎÄParses strings between identifier delimiters. Consumes all input that it deems to be valid in an identifier. Note that it simply blindly consumes characters and does no actual validation itself.Ï,Parses UTF8 strings from ByteString streams.Ð Parses identifiers with help of Î. Asks GHC for ¥ from the string it deems valid.›String to parse˜™š›œœ›š™˜Ñ      !""#$%%&'(()*+,,-.//0123456789:;<=>?@ABCDEFGHIJKIJLIJMIJNIJOIJPIJQIJRIJSIJTIJUIJVIJWIJXIJYIZ[IZ\IZ]IZ^IZ_IZ`IZaIZbIZcIZdeeffghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª¨©«¡¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆǨÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙ,haddock-library-1.4.4-CXooRSeuRsKECQif93ojDjDocumentation.Haddock.Types"Documentation.Haddock.Parser.MonadDocumentation.Haddock.DocDocumentation.Haddock.Utf8Documentation.Haddock.Parser!Documentation.Haddock.Parser.UtilDocHDocEmpty DocAppend DocString DocParagraph DocIdentifierDocIdentifierUnchecked DocModule DocWarning DocEmphasis DocMonospacedDocBoldDocUnorderedListDocOrderedList DocDefList DocCodeBlock DocHyperlinkDocPic DocMathInlineDocMathDisplayDocAName DocProperty DocExamples DocHeaderExampleexampleExpression exampleResultHeader headerLevel headerTitlePicture pictureUri pictureTitle Hyperlink hyperlinkUrlhyperlinkLabelVersionMetaDoc_meta_docMeta_versionoverDoc$fEqMeta $fShowMeta $fEqHyperlink$fShowHyperlink $fEqPicture $fShowPicture $fEqHeader $fShowHeader$fFunctorHeader$fFoldableHeader$fTraversableHeader $fEqExample $fShowExample$fEqDocH $fShowDocH $fFunctorDocH$fFoldableDocH$fTraversableDocH $fEqMetaDoc $fShowMetaDoc$fFunctorMetaDoc$fFoldableMetaDoc$fTraversableMetaDoc)attoparsec-0.13.1.0-2xtipSJ3oFDBfLwedqccXData.Attoparsec.Combinator skipMany1skipManysepBy1'sepBy1sepBy'sepByoption manyTill'manyTillmany1'many1many'eitherPcountchoice Data.Attoparsec.ByteString.Char8 notInClass isSpace_w8isSpaceisHorizontalSpace isEndOfLine isDigit_w8isDigitisAlpha_iso8859_15 isAlpha_asciiinClassParser ParserStateparserStateSinceinitialParserState parseOnlyliftsetParserStatesetSincecharchar8anyCharnotCharsatisfypeekChar peekChar'digitletter_iso8859_15 letter_asciispacestringstringCI skipSpace skipWhiletakescan takeWhile takeWhile1takeTilltakeByteStringtakeLazyByteString endOfLinedecimal hexadecimal endOfInputatEnd$fIsStringParser$fEqParserState$fShowParserState$fFunctorParser$fApplicativeParser$fAlternativeParser $fMonadParser$fMonadPlusParser docConcat metaConcat metaDocConcat metaDocAppend metaAppend emptyMetaDoc docAppend docParagraph encodeUtf8 decodeUtf8 Identifier toRegularoverIdentifier parseParas parseStringstrip removeEscapesbytestring-0.10.8.2Data.ByteString.Char8unsnocskipHorizontalSpacetakeHorizontalSpace makeLabeled takeUntilbaseGHC.Base<|>StringData.ByteString.Internal ByteStringreplacementCharacterencodedecode parseStringBS encodedChar specialCharstring'skipSpecialCharemphasisbold takeWhile_ takeWhile1_anchor monospace moduleNamepicture mathInline mathDisplay paragraphheader unorderedList orderedList innerListdefinitionListdropNLsmore Data.EitherEitherinnerParagraphs moreListItems moreContentindentedParagraphsdropFrontOfParatakeNonEmptyLine takeIndent birdtracksexamplesproperty codeblockautoUrl parseValid utf8String identifier