_TVV      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU SafeVWXYZ[\]^_`abcdW^_`abcdVWXYZ[\]^_`abcdNone35 GCompute the slice of code that given source fragment is in (for naming)  e      e NoneC Message severityMessage from analysisKeeps a set of messages'String showing all possible values for Severity.1Helper for logging a message with given severity.@TODO: automatic inference of the srcLine | Log a certain error Log a warningLog informational messageLog debugging messagefConvert Log into ordered sequence (Seq).1Extract an ordered sequence of messages from the Log. ghijklmfnopqrstu   ghijklmfnopqrstuNone +3457>LNClass  CodeFragmentz allows for: * both selecting direct or all descendants of the given type of object within another structure (with occurs and  allOccurs7) * naming the object to allow user to distinguish it.;In order to compute selection, we just need to know which ASTL nodes contain the given object, and how to extract this given object from AST, if it is there (matchAST).:wvAlias for a class signature3Type alias for a type signature of a function as a  CodeFragment# Alias for a function declaration)Program,<Smart constructor for adding cross-references in the future.-Proxy for passing Program type as an argument..Proxy for passing Function type as an argument./Proxy for passing Program type as an argument.0First location for each  CodeFragment - for convenient reporting.wMake a single element list.1Direct occurences of given  CodeFragment# fragment within another structure.2Explicitly typed variant of occurs.4Explicitly typed variant of  allOccurs.5Proxy for passing Module type as an argument.xUnpack Name identifier into a String.&yzv{ !"#$%&'()*+,-./0|w12345x}~ !"#$%&'()*+,-./0123451234)*+-,5#$%&'(. !"/0yzv{ !"#$%&'()*+,-./0|w12345x}~None357CN6)Number of lines of code (example metric)7#Metric can be computed on a set of  CodeFragment fragments and then shown.9Proxy for passing LOC type as parameter.:$Convenience function for fixing the Metric type.;)Convenience function for fixing both the Metric and  CodeFragment" for which the metric is computed. 6789:;6789:;7869:;6789:;None 3457CN <Decision depth= Represents cyclomatic complexity> For passing  Cyclomatic type as parameter.2Computing cyclomatic complexity on a code fragment6Sum the results of mapping the function over the list.1Compute cyclomatic complexity of pattern matches.(Cyclomatic complexity of all expressions6Sum the results of mapping the function over the list.? For passing Depth type as parameter.Depth of branching within Expression.5Helper function to compute depth of branching within case expression match.Check whether given Exp5ression node is a decision node (conditional branch.)<=>?<=>?=><?<=>?None3457CN6Sum the results of mapping the function over the list.*Function computing constructor depth of a Type.#Check whether given constructor of Type) counts in constructor depth computation.*Function computing constructor depth of a Type.@ABC@ABCAB@C @ABCNone  3457N D4Tagging of source range for each commentable object.H3Possible link between comment and commented entity.I<May be counted as commenting object that starts just before.J;May be counted as commenting object within which it exists.K;May be counted as commenting object that starts just after.LODescribes the comment span, and the way it may be connected to the source codePOClassifies all comments in list, so they can be assigned to declarations later.QDFinds Haddock markers of which declarations the comment pertains to.R&Find comment sites for entire program.S\Take together are commentable elements, and all comments, and order them by source location.DEFGHIJKLMNOPQRSDEFGHIJKLMNOPQRSLMNOHIJKPQDEFGRSDEFGHIJKLMNOPQRSNone3457N1Maximally permissive list of language extensions.=CppHs options that should be compatible with haskell-src-extsT\Parse Haskell source file, using CppHs for preprocessing, and haskell-src-exts for parsing.)Catches all exceptions and wraps them as Critical log messages.TTTT None  *+3457N!Type of functions that convert a Metric into a log message."Measure all occurences of a given  CodeFragment with a given Metric , then use  Assessment on them and give a list of Log messages.+Arguments come in the following order: 1.  Assessment for the value of the Metric. 2. Metric given as Proxy type. 3.  CodeFragment given as Proxy type. 4. Program containing  CodeFragments.ULCompute all metrics, and assign severity depending on configured thresholds.<UUU0U     !"#$%&'()**+,-../01233456789:;<=>?@ABCDEFGHIJKLMMNOPQRSTTUVWXYZ[ \ ] ^ _ ` a b c d e f g h i j klmnopqrstuvwxyz{|}~{?EFIJ                          FkKCuCscRW24QveKTmisCL(Language.Haskell.Homplexity.CodeFragment$Language.Haskell.Homplexity.SrcSlice#Language.Haskell.Homplexity.Message"Language.Haskell.Homplexity.Metric&Language.Haskell.Homplexity.Cyclomatic*Language.Haskell.Homplexity.TypeComplexity$Language.Haskell.Homplexity.Comments!Language.Haskell.Homplexity.Parse&Language.Haskell.Homplexity.AssessmentPaths_homplexityDEKwonbxWpN2dbpDMbp1tHLanguage.Haskell.Exts.SyntaxXmlPage XmlHybridModuleSrcSlice sliceFilenamesliceFirstLine sliceLastLinesrcLocsrcSlice mergeSrcLocs locAsSpan showSrcSpanSeverityDebugInfoWarningCriticalMessageLogseverityOptionsmessagecriticalwarninfodebugextract CodeFragment fragmentName fragmentSlice TypeSignatureloc identifierstheTypeFunction functionNamesfunctionLocations functionRhs functionBindsProgram allModulesprogramprogramT functionTtypeSignatureT fragmentLococcursoccursOf allOccurs allOccursOfmoduleTLOCMetricmeasurelocT measureAs measureForDepth Cyclomatic cyclomaticTdepthT NumFunArgsConDepth conDepthT numFunArgsT CommentSitesiteName siteSlice CommentTypeCommentsBeforeCommentsInside CommentsAfter CommentLink commentSpan commentTypeclassifyCommentsfindCommentType commentableorderCommentsAndCommentables parseSourcemetricscatchIOversionbindirlibdir dynlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameallEqualorderedMessages msgSeveritymsgTextmsgSrcunLog msgOrdering $fShowLog$fFlagTypeSeverity$fLiftSeverity$fNFDataSeverity $fShowMessage$fNFDataSrcLoc$fNFDataMessage $fNFDataLogClassSignature singletonunNameASTmatchAST mergeBinds$fCodeFragmentTypeSignature$fCodeFragmentModule$fCodeFragmentProgram$fCodeFragmentFunctionasInt $fMetricLOCc $fReadLOC $fShowLOC cyclomaticsumOfcyclomaticOfMatchescyclomaticOfExprsmaxOf depthOfExprdepthOfMatches isDecisionunCycloMatchSet $fShowDepth$fMetricDepthFunction$fMetricCyclomaticFunction$fShowCyclomaticconDepthdeeper numFunArgs _unNumFunArgs unConDepth$fMetricNumFunArgsTypeSignature$fShowNumFunArgs$fMetricConDepthTypeSignature$fShowConDepth myExtensions cppHsOptions AssessmentmeasureAllOccurs measureAllmeasureTopOccurs warnOfMeasureHFlag_moduleLinesWarningHFlagC_moduleLinesWarningflags_moduleLinesWarning$fFlagHFlag_moduleLinesWarningHFlag_moduleLinesCriticalHFlagC_moduleLinesCriticalflags_moduleLinesCriticalassessModuleLength$fFlagHFlag_moduleLinesCriticalHFlag_functionLinesWarningHFlagC_functionLinesWarningflags_functionLinesWarning $fFlagHFlag_functionLinesWarningHFlag_functionLinesCriticalHFlagC_functionLinesCriticalflags_functionLinesCriticalassessFunctionLength!$fFlagHFlag_functionLinesCriticalHFlag_functionDepthWarningHFlagC_functionDepthWarningflags_functionDepthWarning $fFlagHFlag_functionDepthWarningHFlag_functionDepthCriticalHFlagC_functionDepthCriticalflags_functionDepthCriticalassessFunctionDepth!$fFlagHFlag_functionDepthCriticalHFlag_functionCCWarningHFlagC_functionCCWarningflags_functionCCWarning$fFlagHFlag_functionCCWarningHFlag_functionCCCriticalHFlagC_functionCCCriticalflags_functionCCCriticalassessFunctionCC$fFlagHFlag_functionCCCriticalHFlag_typeConDepthWarningHFlagC_typeConDepthWarningflags_typeConDepthWarning$fFlagHFlag_typeConDepthWarningHFlag_typeConDepthCriticalHFlagC_typeConDepthCriticalflags_typeConDepthCriticalassessTypeConDepth $fFlagHFlag_typeConDepthCriticalHFlag_numFunArgsWarningHFlagC_numFunArgsWarningflags_numFunArgsWarning$fFlagHFlag_numFunArgsWarningHFlag_numFunArgsCriticalHFlagC_numFunArgsCriticalflags_numFunArgsCriticalassessNumFunArgs$fFlagHFlag_numFunArgsCritical