Ȥ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(c) Simon Marlow 2003BSD-likehaddock@projects.haskell.org experimentalportableSafes(c) Simon Marlow 2003-2006, David Waern 2006-2009, Mark Lentczner 2010BSD-likehaddock@projects.haskell.org experimentalportableNone(c) David Waern 2006-2009BSD-likehaddock@projects.haskell.org experimentalportableNone 35A parent and its childrenpA mapping from the parent (main-binder) to its children and from each child to its grand-children, recursively.A mapping from child to parent-The parents of a subordinate in a declaration A variant of D where the return value from the first computation is not required.(%'F(c) Mateusz Kowalczyk 2013, Simon Hengel 2013BSD-likehaddock@projects.haskell.org experimentalportableNone*35USafe  (c) Simon Marlow 2003BSD-likehaddock@projects.haskell.org experimentalportableSafe      |(c) Simon Marlow 2003-2006, David Waern 2006-2009, Mateusz Kowalczyk 2013BSD-likehaddock@projects.haskellorg experimentalportableNone*+-./?Haddock's own exception type. Module\ contains the current module. This way we can distinguish imported and local identifiers. 'Option controlling how to qualify names Never qualify any names.Qualify all names fully.!Qualify all imported names fully.JLike local, but strip module prefix from modules in the same hierarchy.Uses aliases of module names as suggested by module import renamings. However, we are unfortunately not able to maintain the original qualifications. Image a re-export of a whole module, how could the re-exported identifiers be qualified?!7Source-level options for controlling the documentation."*This module should not appear in the docs.$Pretend everything is exported.%CNot the best place to get docs for things exported by this module.&*Render enabled extensions for this module.J}The head of an instance. Consists of a class name, a list of kind parameters, a list of type parameters and an instance typeKCAn instance head that may have documentation and a source location.The three types of instancesContextBody (right-hand side)Data constructorsLExtends " with cross-reference information.MFThis thing is part of the (existing or resulting) documentation. The : is the preferred place in the documentation to refer to.N^This thing is not part of the (existing or resulting) documentation, as far as Haddock knows.OFType of environment used to cross-reference identifiers in the syntax.QArguments and result are indexed by Int, zero-based from the left, because that's the easiest to use when recursing over types.WAn exported declaration.XA declaration.YcMaybe a doc comment, and possibly docs for arguments (if this decl is a function or type-synonym).Z/Subordinate names, possibly with documentation.[EInstances relevant to this declaration, possibly with documentation.\CFixity decls relevant to this declaration (including subordinates).]gWhether the ExportItem is from a TH splice or not, for generating the appropriate type of Source link.^gAn exported entity for which we have no documentation (perhaps because it resides in another package).`Subordinate names.aA section heading.bSection level (1, 2, 3, ...).cSection id (for hyperlinks).dSection heading text.eSome documentation.f$A cross-reference to another module.gA subset of the fields of s' that we store in the interface files.i)The module represented by this interface.j%Textual information about the module.kTDocumentation of declarations originating from the module (including subordinates).m"All names exported by this module.n|All "visible" names exported by the module. A visible name is a name that will show up in the documentation of the module.o=Haddock options for this module (prune, ignore-exports, etc).ssP holds all information used to render a single Haddock page. It represents the  interface of a module. The core business of Haddock lies in creating this structure. Note that the record contains some fields that are only used to create the final record, and that are not used by the backends.u!The module behind this interface.v!Original file name of the module.w%Textual information about the module.xDocumentation header.y6Documentation header with cross-reference information.z=Haddock options for this module (prune, ignore-exports, etc).{Declarations originating from the module. Excludes declarations without names (instances and stand-alone documentation comments). Includes names of subordinate declarations mapped to their parent declarations.|TDocumentation of declarations originating from the module (including subordinates).~TDocumentation of declarations originating from the module (including subordinates).!All names exported by the module.|All "visible" names exported by the module. A visible name is a name that will show up in the documentation of the module. Aliases of module imports as in import A.B.C as C.!Instances exported by the module.The number of haddockable and haddocked items in the module, as a tuple. Haddockable items are the exports and the module itself.+Warnings for things defined in this module. Convert an s to an g !"#$   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH%I&JKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_  !"#$   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH%I&JKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~'()*+,-./012345678@ !"#$   !"#$%&' ()*+,-./0123456789:;<=>?@ABCDEFGH%I&JKLMNOPQRSTUVW^aefXYZ[\]_`bcdg hijklmnopqrstuvwxyz{|}~'()*+,-./0123456789:;<=>?@ABCDEFGHIJ (c) The University of Glasgow 2001-2002, Simon Marlow 2003-2006, David Waern 2006-2009BSD-likehaddock@projects.haskell.org experimentalportableNone`3Print a message to stdout, if it is not too verbosea%Extract a module's short description.b%Extract a module's short description.cThe name of the module index file to be displayed inside a frame. Modules are display in full, but without indentation. Clicking opens in the main window.d^Takes an arbitrary string and makes it a valid anchor ID. The mapping is identity preserving.eThe identity markup3f`program verbositymessage verbosityabghijklmnopqrcstuvwxyzd{|}~e(f`abghmopqrcstuvwxyzd{|}~e3f`abghijklmnopqrcstuvwxyzd{|}~e |(c) Simon Marlow 2003-2006, David Waern 2006-2009, Mateusz Kowalczyk 2013BSD-likehaddock@projects.haskell.org experimentalportableNoneLike  listToMaybe3 but returns the last element instead of the first.@>, (c) Mark Lentczner 2010BSD-likehaddock@projects.haskell.org experimentalportableNone-Find a theme by name (case insensitive match)Standard theme used by default=Default themes that are part of Haddock; added with --default-themes The first theme in this list is considered the standard theme. Themes are "discovered" by scanning the html sub-dir of the libDir, and looking for directories with the extension .theme or .std-theme. The later is, obviously, the standard theme.%Build a theme from a single .css fileBuild a theme from a directory!Check if we have a built in themeFind a built in theme+Process input flags for CSS Theme arguments s(c) Simon Marlow 2003-2006, David Waern 2006-2009, Mark Lentczner 2010BSD-likehaddock@projects.haskell.org experimentalportableNoneConcatenate a series of / values vertically, with linebreaks in between. Join two 5 values together with a linebreak in between. Has  as left identity.Generate a named anchor)generate an anchor identifier for a group,Attributes for an area that can be collapsed4Attributes for an area that toggles a collapsed areaNAttributes for an area that toggles a collapsed area, and displays a control. (c) Neil Mitchell 2006-2008BSD-likehaddock@projects.haskell.org experimentalportableNone%for constructors, and named-fields...*   %   F(c) Simon Marlow 2003-2006, David Waern 2006-2009BSD-likehaddock@projects.haskell.org experimentalportableNone>L8   !"#$%&'()*+,-./0123456789:;<=>?@ABC6   !"#$%&'()*+,-./0123456789:;<=>?@ABC(c) Isaac Dupree 2009,BSD-likehaddock@projects.haskell.org experimentalportableNoneD^normal situation. This is the safe one to use if you don't quite understand what's going on.Esbeginning of a function definition, in which, to make it look less ugly, those rank-1 foralls are made implicit.FJbecause in class methods the context is added to the type (e.g. adding forall a. Num a => to (+) :: a -> a -> a) which is rather sensible, but we want to restore things to the source-syntax situation where the defining class gets to quantify all its functions for free!G3Turn type constructors into type class declarationsHDEFIJKGLMNOPQRSTUHDEFIJKGLMNOPQRSTUHDEFIJKGLMNOPQRSTUh(c) Simon Marlow 2006, David Waern 2006-2009, Isaac Dupree 2009BSD-likehaddock@projects.haskell.org experimentalportableNone<VSimplified type for sorting types, ignoring qualification (not visible in Haddock output) and unifying special tycons with normal ones. For the benefit of the user (looks nice and predictable) and the tests (which prefer output to be deterministic).W Like GHC's X but drops "silent" arguments.YEDrop "silent" arguments. See GHC Note [Silent superclass arguments].Z{Like GHC's getInfo but doesn't cut things out depending on the interative context, which we don't set sufficiently anyway.["A class or data type is hidden iff<it is defined in one of the modules that are being processed/and it is not exported by any non-hidden module\ZWe say that an instance is hidden iff its class or any (part) of its type(s) is hidden.V]^_`abcdWYZefghi[\jbV]^_`abcdWYZefghi[\j((c) Simon Marlow 2006, Isaac Dupree 2009BSD-likehaddock@projects.haskell.org experimentalportableNonek"This function is how we read keys.7all fields in the header are optional and have the form spaces1[field name][spaces] ":"textg"n" ([spaces2][space][text]"n" | [spaces]"n")* where each [spaces2] should have [spaces1] as a prefix.Thus for the key  Description, VDescription : this is a rather long description The module comment starts here^the value will be "this is a .. description" and the rest will begin at "The module comment".lkllkA(c) Isaac Dupree 2009, Mateusz Kowalczyk 2013BSD-likehaddock@projects.haskell.org experimentalportableNonemTakes a n which (hopefully) contains all the definitions and a parsed comment and we attempt to make sense of where the identifiers in the comment point to. We're in effect trying to convert os to Ns, with some guesswork and fallbacks in case we can't locate the identifiers.=See the comments in the source for implementation commentary.p>Wrap an identifier that's out of scope (i.e. wasn't found in GlobalReaderEnv during m-) in an appropriate doc. Currently we simply monospace the identifier in most cases except when the identifier is qualified: if the identifier is qualified then we can still try to guess and generate anchors accross modules but the users shouldn't rely on this doing the right thing. See tickets 253 and H375 on the confusion this causes depending on which default we pick in m.qrstmpqrstqrstmp|(c) Simon Marlow 2003-2006, David Waern 2006-2009, Mateusz Kowalczyk 2013BSD-likehaddock@projects.haskell.org experimentalportableNoneFUuUse a v to produce an sj. To do this, we need access to already processed modules in the topological sort. That's what's in the ..wCreate x by looping through the declarations. For each declaration, find its names, its subordinates, and its doc strings. Process doc strings into Is.yFGet all subordinate declarations inside a declaration, and their docs.z1Extract function argument docs from inside types.{|All the sub declarations of a class (that we handle), ordered by source location, with documentation attached if it exists.|The top-level declarations of a module that we care about, ordered by source location, with documentation attached if it exists.})Extract a map of fixity declarations only~ATake all declarations except pragmas, infix decls, rules from an .bTake a field of declarations from a data structure and create HsDecls using the given constructorSort by source location7Filter out declarations that we don't handle in HaddockCGo through all class declarations and filter their sub-declarations7Collect docs and attach them to the right declarations.Build the list of items that will become the documentation, from the export list. At this point, the list of ExportItems is in terms of original names.We create the export items even if the module is hidden, since they might be useful when creating the export items for other modules.This function is called for top-level bindings without type signatures. It gets the type signature from GHC and that means it's not going to have a meaningful . So we pass down + for the declaration and use it instead - nLoc here.(Lookup docs for a declaration from maps.Return all export items produced by an exported module. That is, we're interested in the exports produced by "module B" in such a scenario: 5module A (module B) where import B (...) hiding (...),There are three different cases to consider:1) B is hidden, in which case we return all its exports that are in scope in A. 2) B is visible, but not all its exports are in scope in A, in which case we only return those that are. 3) B is visible and all its exports are in scope, in which case we return a single f item.Sometimes the declaration we want to export is not the "main" declaration: it might be an individual record selector or a class method. In these cases we have to extract the required declaration (and somehow cobble together a type signature for it...).Keep export items with docs.5Find a stand-alone documentation comment by its name.#xuwyz{|}~ Module A'The real name of B, the exported module"The flags used when typechecking A#The renaming environment used for AAll the exports of AAll the declarations in AAlready created interfacesInterfaces in other packages Locations of all TH splices Resulting export itemsu#xuwyz{|}~s(c) Simon Marlow 2003-2006, David Waern 2006-2009, Mark Lentczner 2010BSD-likehaddock@projects.haskell.org experimentalportableNoneIndicator of how to render a L into  Render as-is.Render using infix notation.Render using prefix notation.:Render a name depending on the selected qualification modeA(c) Simon Marlow 2003-2006, David Waern 2006BSD-likehaddock@projects.haskell.org experimentalportableNoneNone F(c) Simon Marlow 2010, Mateusz Kowalczyk 2013BSD-likehaddock@projects.haskell.org experimentalportableNoneOPrint a possibly commented instance. The instance header is printed inside an argBoxJ. The comment is printed to the right of the box in normal comment style.oPrint the LHS of a data/newtype declaration. Currently doesn't handle 'data instance' decls or kind signaturesIPrint an application of a DocName and two lists of HsTypes (kinds, types)5Print an application of a DocName and a list of Names%General printing of type applications|      !"#$%&'()*+,-./0123456789:;<=y      !"#$%&'()*+,-./0123456789:;<==s(c) Simon Marlow 2003-2006, David Waern 2006-2009, Mark Lentczner 2010BSD-likehaddock@projects.haskell.org experimentalportableNone>5We use this intermediate type to transform the input Iy tree in an arbitrary way before rendering, such as grouping some elements. This is effectivelly a hack to prevent the Ig type from changing if it is possible to recover the layout information we won't need after the fact.?Group things under bold  s together.@Remove top-level  s turning them into a flat list. This lends itself much better to processing things in order user might look at them, such as in ?.A8Generate the markup needed for collapse to happen. For B and C7 we do nothing more but extract/append the underlying I and convert it to . For D(, we attach extra info to the generated 0 that allows us to expand/collapse the content.E Goes through A to generate the # rather than skipping straight to C: this allows us to employ XHtml specific hacks to the tree first.FSame as G but it doesn't insert the HG element in links. This is used to generate the Contents box elements.>BDCI?ZCounter for header IDs which serves to assign unique identifiers within the comment scopeIt is not enough to have unique identifier within the scope of the comment: if two different comments have the same ID for headers, the collapse/expand behaviour will act on them both. This serves to make each header a little bit more unique. As we can't export things with the same names, this should work more or less fine: it is in fact the implicit assumption the collapse/expand mechanism makes for things like Instances  boxes.@AJEG4Name of the thing this doc is for. See comments on ? for details.FSee ?KLMN!Name of the thing this doc is forO!Name of the thing this doc is forPGFKLMNO>BDCI?@AJEGFKLMNOPs(c) Simon Marlow 2003-2006, David Waern 2006-2009, Mark Lentczner 2010BSD-likehaddock@projects.haskell.org experimentalportableNoneQMake an element that always has at least something (a non-breaking space). If it would have otherwise been empty, then give it the class ".empty".R-Sub table with source information (optional).S9Generate sub table for instance declarations, with sourceTxAdds a source and wiki link at the right hand side of the box. Name must be documented, otherwise we wouldn't get here.#UVWXQYZ[\]^_`abcdefghiRjklmnoS&Class name, used for anchor generationpqrsTUVXQYZ[\]^_`abcdefklmnoSpqrs#UVWXQYZ[\]^_`abcdefghiRjklmnoSpqrsTs(c) Simon Marlow 2003-2006, David Waern 2006-2009, Mark Lentczner 2010BSD-likehaddock@projects.haskell.org experimentalportableNoneAt%Print a type family and its variablesu/Print a newtype / data binder and its variablesvIPrint an application of a DocName and two lists of HsTypes (kinds, types)w5Print an application of a DocName and a list of Namesx%General printing of type applicationsyoPrint the LHS of a data/newtype declaration. Currently doesn't handle 'data instance' decls or kind signaturesDz{|}~tuvwxyzxDz{|}~tuvwxy(c) Simon Marlow 2003-2006, David Waern 2006-2009, Mark Lentczner 2010, Mateusz Kowalczyk 2013BSD-likehaddock@projects.haskell.org experimentalportableNoneBTurn a module tree into a flat list of full module names. E.g.,  A +-B +-C  becomes [A, A.B, A.B.C]  TitlePackageDestination directoryPrologue text, maybeThemesThe source URL (--source)The wiki URL (--wiki) !The contents URL (--use-contents) The index URL (--use-index) 0Whether to use unicode in output (--use-unicode) How to qualify names +Output pretty html (newlines and indenting) How to qualify names K(c) David Waern 2006-2009, Mateusz Kowalczyk 2013BSD-likehaddock@projects.haskell.org experimentalportableNoneINRead a Haddock (.haddock$) interface file. Return either an  or an error message.\This function can be called in two ways. Within a GHC session it will update the use and update the session's name cache. Outside a GHC session a new empty name cache is used. The function is therefore generic in the monad being used. The exact monad is whichever monad the first argument, the getter and setter of the name cache, requires.* !|(c) Simon Marlow 2003-2006, David Waern 2006-2010, Mateusz Kowalczyk 2013BSD-likehaddock@projects.haskell.org experimentalportableNoneCreate szs and a link environment by typechecking the list of modules using the GHC API and processing the resulting syntax trees.:Build a mapping which for each original name, points to the "best" place to link to in the documentation. For the definition of "best", we use "the module nearest the bottom of the dependency graph which exports this name", not including hidden modules. When there are multiple choices, we pick a random one.uThe interfaces are passed in in topologically sorted order, but we start by reversing the list so we can do a foldl.Verbosity of logging to stdout9A list of file or module names sorted by module topologyCommand-line flags'Interface files of package dependencies6Resulting list of interfaces and renaming environmentr(c) Simon Marlow 2003-2006, David Waern 2006-2010, Mateusz Kowalczyk 2014BSD-likehaddock@projects.haskell.org experimentalportableNoneINUoEither returns normally or throws an ExitCode exception; all other exceptions are turned into exit exceptions.)Run Haddock with given list of arguments.8Haddock's own main function is defined in terms of this: main = getArgs >>= haddock1Create warnings about potential misuse of -optghcFRender the interfaces with whatever backend is specified in the flags.TFrom GHC 7.10, this function has a potential to crash with a nasty message such as expectJust getPackageDetails because package name and versions can no longer reliably be extracted in all cases: if the package is not installed yet then this info is no longer available. The --package-name and --package-version Haddock flags allow the user to specify this information and it is returned here if present: if it is not present, the error will occur. Nasty but that's how it is for now. Potential TODO.kStart a GHC session with the -haddock flag set. Also turn off compilation and linking. Then run the given  action. uHaddock flags are checked as they may contain the package name or version provided by the user which we prioritise         (c) David Waern 2010BSD-likehaddock@projects.haskellorg experimentalportableNoneCreate sf structures from a given list of Haddock command-line flags and file or module names (as accepted by m executable). Flags that control documentation generation or show help or version information are ignored.A list of command-line flagsFile or module namesResulting list of interfaces  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~stuvwxyz{|}~ghijklmnopqVW^aefXYZ[\]_`bcdPQOLMNKJI 23456789:;<=>?@ABCDEFGHRSTU r'()*+,-./01!"#$%& ! " # # $ % & & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; <==>?@ABCDEEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoopqrstuvwxyz{|}~                                                   !"#$%&'()*+,-./011223456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgfhijij k l m m n o p p q r s t t u v w w x y z { | } ~                                                                                                                                        x                  ! " # $ % & '(()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxqyz{|}~1       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~)  !"#$%&'(*+,-.haddo_HFJBO1s5j6IHtyQSmnXSHoDocumentation.HaddockHaddock.Backends.HaddockDBHaddock.Backends.Xhtml.TypesHaddock.GhcUtilsHaddock.ParserPaths_haddock_apiHaddock.Version Haddock.Types Haddock.UtilsHaddock.OptionsHaddock.Backends.Xhtml.ThemesHaddock.Backends.Xhtml.UtilsHaddock.Backends.HoogleHaddock.Interface.RenameHaddock.Convert!Haddock.Interface.AttachInstances#Haddock.Interface.ParseModuleHeaderHaddock.Interface.LexParseRnHaddock.Interface.CreateHaddock.Backends.Xhtml.NamesHaddock.ModuleTree Haddock.DocHaddock.Backends.LaTeX Haddock.Backends.Xhtml.DocMarkupHaddock.Backends.Xhtml.LayoutHaddock.Backends.Xhtml.DeclHaddock.Backends.XhtmlHaddock.InterfaceFileHaddock.InterfaceHaddockhaddo_6rFKURNqZiZKeKHZfpv3RUDocumentation.Haddock.TypeshyperlinkLabel hyperlinkUrl Hyperlink exampleResultexampleExpressionExample DocHeader DocExamples DocPropertyDocANameDocPic DocHyperlink DocCodeBlock DocDefListDocOrderedListDocUnorderedListDocBold DocMonospaced DocEmphasis DocWarning DocModuleDocIdentifierUnchecked DocIdentifier DocParagraph DocString DocAppendDocEmptyDocHHaddockExceptionAliasMap DocOptionOptHideOptPruneOptIgnoreExports OptNotHomeOptShowExtensionsHaddockModInfohmi_description hmi_copyright hmi_licensehmi_maintainer hmi_stabilityhmi_portability hmi_safety hmi_languagehmi_extensions DocMarkupMarkup markupEmpty markupStringmarkupParagraph markupAppendmarkupIdentifiermarkupIdentifierUnchecked markupModule markupWarningmarkupEmphasis markupBoldmarkupMonospacedmarkupUnorderedListmarkupOrderedList markupDefListmarkupCodeBlockmarkupHyperlink markupAName markupPicmarkupProperty markupExample markupHeaderDocInstHead DocInstanceDocName Documented UndocumentedLinkEnv DocForDecl FnArgsDoc DocumentationdocumentationDocdocumentationWarning ExportItem ExportDecl expItemDecl expItemMbDocexpItemSubDocsexpItemInstancesexpItemFixitiesexpItemSpliced ExportNoDecl expItemName expItemSubs ExportGroupexpItemSectionLevelexpItemSectionIdexpItemSectionText ExportDoc ExportModuleInstalledInterfaceinstModinstInfo instDocMap instArgMap instExportsinstVisibleExports instOptions instSubMap instFixMap WarningMap InterfaceifaceModifaceOrigFilename ifaceInfoifaceDoc ifaceRnDoc ifaceOptions ifaceDeclMap ifaceDocMap ifaceArgMap ifaceRnDocMap ifaceRnArgMap ifaceSubMap ifaceFixMapifaceExportItemsifaceRnExportItems ifaceExportsifaceVisibleExportsifaceModuleAliasesifaceInstancesifaceFamInstancesifaceHaddockCoverageifaceWarningMapArgMapDocMapmarkupFlagFlag_BuiltInThemesFlag_CSSFlag_ReadInterfaceFlag_DumpInterface Flag_Heading Flag_Html Flag_HoogleFlag_LibFlag_OutputDir Flag_PrologueFlag_SourceBaseURLFlag_SourceModuleURLFlag_SourceEntityURLFlag_SourceLEntityURLFlag_WikiBaseURLFlag_WikiModuleURLFlag_WikiEntityURL Flag_LaTeXFlag_LaTeXStyle Flag_HelpFlag_Verbosity Flag_Version Flag_CompatibleInterfaceVersionsFlag_InterfaceVersionFlag_UseContentsFlag_GenContents Flag_UseIndex Flag_GenIndexFlag_IgnoreAllExportsFlag_HideModuleFlag_ShowExtensions Flag_OptGhcFlag_GhcLibDirFlag_GhcVersionFlag_PrintGhcPathFlag_PrintGhcLibDirFlag_NoWarningsFlag_UseUnicodeFlag_NoTmpCompDirFlag_QualificationFlag_PrettyHtmlFlag_NoPrintMissingDocsFlag_PackageNameFlag_PackageVersionNameCacheAccessor InterfaceFile ifLinkEnvifInstalledIfacesnameCacheFromGhcfreshNameCachereadInterfaceFileprocessModuleshaddockhaddockWithGhcwithGhc getGhcDirscreateInterfaces ppDocBookUnicodeSplice LinksInfoWikiURLs SourceURLsfamilyfamilies parentMapparents gbracket_ghc ExceptiongbracketParentchildren moduleStringlookupLoadedHomeModuleGRE isNameSymisVarSymisConSymgetMainDeclBinder getInstLocfilterLSigNamesfilterSigNames ifTrueJustsigName sigNameNoLocisTyClDisClassDisDocDisInstDisValDdeclATspretty trace_pprunLreLbefore familyConDeclmodifySessionDynFlags minimalDef setObjectDirsetHiDir setStubDir setOutputDir$fParentTyClDecl$fParentConDecl$fNamedThingTyClDecl parseParas parseString parseIdentcatchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName projectName projectUrlprojectVersion AliasedQual QualOption OptNoQual OptFullQual OptLocalQualOptRelativeQualOptAliasedQualInstType ClassInstTypeInstDataInstNameModuletoInstalledIface ErrMsgGhc WriterGhc runWriterGhcErrMsgMWriter runWriterErrMsg QualificationNoQualFullQual LocalQual RelativeQualMDocLDocDocPathsSrcMapFixMapInstMapDeclMapSubMap InstIfaceMapIfaceMap noDocForDeclunrenameDocForDeclexampleToStringemptyHaddockModInfomakeContentsQualmakeModuleQualtellthrowEliftGhcToErrMsgGhc liftErrMsg$fMonadErrMsgGhc$fApplicativeErrMsgGhc$fFunctorErrMsgGhc$fExceptionHaddockException$fShowHaddockException$fMonadErrMsgM$fApplicativeErrMsgM$fFunctorErrMsgM$fNFDataExample$fNFDataPicture$fNFDataHyperlink$fNFDataHeader$fNFDataModuleName$fNFDataOccName $fNFDataName $fNFDataDocH$fOutputableInstType$fNamedThingDocNameHsDoc HsDocString LHsDocString BasicTypesFixityoverDoc_versionMeta_doc_metaMetaDocVersion pictureTitle pictureUriPicture headerTitle headerLevelHeaderout toDescriptiontoInstalledDescriptionframeIndexHtmlFile makeAnchorIdidMarkupparseVerbositymkMeta restrictTorestrictDataDefn restrictCons restrictDecls restrictATs emptyHsQTvsbaseNamemoduleHtmlFilemoduleHtmlFile'contentsHtmlFile indexHtmlFilemoduleIndexFrameName mainFrameNamesynopsisFrameNamesubIndexHtmlFile moduleUrl moduleNameUrlmoduleNameUrl' nameAnchorIdjsFile framesFilegetProgramNamebyedieMsgnoDieMsgmapSnd mapMaybeM escapeStr escapeURICharescapeURIString isUnreserved isAlphaChar isDigitCharisAlphaNumCharhtml_xrefs_refhtml_xrefs_ref' html_xrefs html_xrefs'replacespanWith markupPair getProcessIDbase System.Exitdietrans_3eG64VdP2vzGjP6wJiCp5XControl.Monad.IO.ClassMonadIOliftIOoptLastoptionsgetUsageparseHaddockOptsoptPackageVersionoptPackageNameoptTitle outputDiroptContentsUrl optIndexUrl optCssFile sourceUrlswikiUrlsoptDumpInterfaceFile optLaTeXStyle qualification verbosityghcFlags readIfaceArgs findTheme standardTheme defaultThemessingleFileThemedirectoryThemedoesBuiltInExist builtInTheme getThemesPossibleThemes PossibleThemeThemesTheme themeName themeHref themeFiles errMessageretRightgetDirectoryItems isCssFilePathcssFiles styleSheetsequenceEither liftEither concatEithervcatxhtml_FxPylgBilld3tRCpn3X21NText.XHtml.InternalsHtml<=>noHtml namedAnchorgroupIdcollapseSectioncollapseTogglecollapseControl spliceURLrenderToStringhsep<+>keywordequalscommacharquoteparensbrackets pabracketsbraces punctuate parenList ubxParenList ubxparensdcolonarrowdarrow forallSymboldot linkedAnchorpick lookupConTagsTagTagLTagPTagPre TagInlineStrprefixppHoogleppModule dropHsDocTy outHsType makeExplicit makeExplicitL dropCommentoutWithoperator commaSeparateppExport ppSigWithDocppSigppClass ppInstance ppSynonymppDatappCtorppDocumentationdocmdocdocWithboxstr markupTagshowTags showBlockasInline showInlineshowPre unwordsWrapescapeRnMunRnrenameInterfacereturnRnthenRn getLookupRnoutRnlookupRnrunRnFMrenamerenameLrenameExportItemsrenameDocForDeclrenameDocumentationrenameLDocHsSyn renameDocrenameFnArgsDoc renameLType renameLKindrenameMaybeLKind renameTyperenameHsQuasiQuoterenameLTyVarBndrsrenameLTyVarBndrrenameLContextrenameInstHead renameLDecl renameDecl renameLThing renameTyClDrenameFamilyDeclrenameFamilyInforenameDataDefn renameConrenameConDeclFieldField renameSig renameForD renameInstDrenameClsInstDrenameTyFamInstDrenameLTyFamInstEqnrenameLTyFamDefltEqnrenameDataFamInstDrenameExportItem renameSubTFCo:R:PostTcDocNameCoercionTFCo:R:PostTcDocNameTypeTFCo:R:PostTcDocNameType0TFCo:R:PostRnDocName[]TFCo:R:PostRnDocNameBoolTFCo:R:PostRnDocNameFixityTFCo:R:PostRnDocNameUniqFM$fApplicativeRnM $fFunctorRnM $fMonadRnM WithinTypeImplicitizeForAllDeleteTopLevelQuantification synifyTyConSynifyTypeStatetyThingToLHsDeclsynifyAxBranch synifyAxiom synifyDataCon synifyName synifyIdSig synifyCtx synifyTyVars synifyType synifyTyLit synifyKindSigsynifyInstHead synifyFamInst SimpleType instanceHead'InstEnv instanceHeaddropSilentArgs getAllInfo isNameHiddenisInstanceHidden SimpleTyLit ExportInfoModules ExportedNamesattachInstancesattachToExportItem instLookupinstHeadargCountsimplifyinstFam funTyConName isTypeHiddenparseKeyparseModuleHeaderRdrName GlobalRdrEnv outOfScopeprocessDocStringsprocessDocStringParasprocessDocStringprocessModuleHeadercreateInterfaceGHCTypecheckedModulemkMapsMaps subordinatestypeDocs classDeclstopDeclsmkFixMapungroupHsDeclsHsGroupmkDecls sortByLoc filterDecls filterClasses collectDocs mkExportItemshiValExportItemSrcLocSrcSpan lookupDocs moduleExports extractDeclpruneExportItems findNamedDoc mkAliasMaplookupModuleDyn mkWarningMap moduleWarning parseWarning mkDocOpts parseOptionhiDeclfullModuleContents toTypeNoLocextractClassDecl extractRecSelmkVisibleNamesseqListNotationRawInfixPrefix ppQualifyName ppOccName ppRdrNameppIPNameppUncheckedLink ppLDocName ppDocNameppFullQualName ppQualNameppNameppBinder ppBinderInfix ppBinder' wrapInfixlinkId linkIdOcc linkIdOcc' ppModuleRef ModuleTreeNode mkModuleTree addToTrees mkSubTree splitModulecombineDocumentation docCodeBlockDocumentation.Haddock.Doc docParagraph docAppend emptyMetaDoc metaAppend metaDocAppend metaDocConcat metaConcat docConcat ppDocInstance ppDataHeaderppAppNameTypesppAppDocNameNames ppTypeApp StringContextPlainVerbMonoLaTeXppLaTeX haddockSty ppLaTeXTop ppLaTeXModule string_txtexportListItemprocessExports isSimpleSigisExportModule processExport ppDocGroup declNames forSummarymoduleLaTeXFilemoduleBasenameppDeclppTyFamppForppTySynppFunSig ppLPatSigppTypeOrFunSig ppTypeSigppTyVars tyvarNames declWithDoc multiDeclmaybeDocrDoc ppClassHdrppFds ppClassDeclppDocInstancesisUndocdInstance ppInstDecl ppInstHeadlookupAnySubdoc ppDataDecl ppConstrHdrppSideBySideConstrppSideBySideField ppLContextppLContextNoArrowppLContextMaybeppContextNoLocsMaybeppContextNoArrowppContextNoLocs ppContext pp_hs_contextppBang tupleParenspREC_TOPpREC_FUNpREC_OPpREC_CON maybeParenppLType ppLParendType ppLFunLhTypeppType ppParendType ppFunLhTypeppLKindppKindppForAll ppLTyVarBndrs ppr_mono_lty ppr_mono_ty ppr_tylit ppr_fun_ty isInfixName ppSymName ppVerbOccName ppVerbDocName ppVerbRdrName ppDocBinder latexFilterlatexMonoFilter latexMungelatexMonoMungeparLatexMarkup latexMarkuprdrLatexMarkup docToLaTeXdocumentationToLaTeX rdrDocToLaTeXlatexStripTrailingWhitespace itemizedListenumeratedListdescriptionListttdeclttemphboldverbnl<->HacktoHackflatten hackMarkup UntouchedDoc HackAppendCollapsingHeader markupHackeddocToHtmlNoAnchors docToHtmlText.XHtml.Strict.Elementsanchor parHtmlMarkup renderMeta origDocToHtml rdrDocToHtml docElement docSection docSection_cleanupnonEmptySectionName subTableSrc subInstanceslinksSubDeclminiBody sectionDiv sectionNamedivPackageHeader divContentdivModuleHeader divFooterdivTableOfContentsdivDescription divSynposis divInterfacedivIndex divAlphabet divModuleList shortDeclList shortSubDecls divTopDecl divSubDeclssubDlistsubTablesubBlock subArgumentssubAssociatedTypessubConstructors subFields subEquations subMethods subMinimaldeclElem topDeclElemppFamDeclBinderWithVarsppDataBinderWithVars ppLFunSig ppSigLike ppFixitiesppTyName ppTyFamHeader ppAssocType ppHsContextppShortClassDecl ppInstancesppShortDataDecl ppShortConstrppShortConstrParts ppShortFieldpREC_CTX ppCtxType ppForAllConflatModuleTreeppHtml copyHtmlBitsheadHtml srcButton wikiButtoncontentsButton indexButtonbodyHtml moduleInfoppHtmlContents ppPrologue ppModuleTree mkNodeListmkNodeppHtmlContentsFrame ppHtmlIndex ppHtmlModuleppHtmlModuleMiniSynopsis ifaceToHtml miniSynopsisprocessForMiniSynopsis ppNameMinippTyClBinderWithVarsMinippModuleContentsnumberSectionHeadings nothingIf processDeclprocessDeclOneLiner groupHeadinggroupTag OnDiskName BinDictionary bin_dict_next bin_dict_mapBinSymbolTablebin_symtab_nextbin_symtab_map ifPackageKeybinaryInterfaceMagicbinaryInterfaceVersion#binaryInterfaceVersionCompatibilityinitBinMemSizewriteInterfaceFileputName putFastStringputSymbolTablegetSymbolTablefromOnDiskName serialiseName$fBinaryDocName$fBinaryHaddockModInfo $fBinaryDocH$fBinaryMetaDoc $fBinaryMeta$fBinaryHeader$fBinaryPicture$fBinaryHyperlink$fBinaryExample$fBinaryDocOption$fBinaryInstalledInterface$fBinaryInterfaceFile $fBinaryMapbuildHomeLinks createIfaces0 createIfaces processModule withTempDirhandleNormalExceptionswarningsrendermodulePackageInfowithGhc'GhcMonadGhchandleTopExceptionshandleHaddockExceptionshandleGhcExceptionsreadPackagesAndProcessModules renderStepreadInterfaceFilesgetHaddockLibDir shortcutFlagsupdateHTMLXRefs getPrologue