N   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~/K/fromNamed will return "" when it cannot be represented  toNamed may crash on ""         4Is this item lexically requiring no bracketing ever  i.e. is totally atomic =Is the child safe free from brackets in the parent position. ) Err on the side of caution, True = don't know 1Add a Paren around something if it is not atomic *Descend, and if something changes then add/remove brackets appropriately Add/=remove brackets as suggested needBracket at 1-level of depth      !"#$%Parse a Haskell module &'(  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%'(  !" !"#$%'( )*+,-./0123456789:;<=>?@ABCDE)*+,-./012345678F:GH;>C) 0,+*12312-./*+,-./012345876678:;>C IJKLMNOPQRST5678IJKLMNOPQRUSTVWXY I LJMNOPQRNOPKQJKLMNOPQRST Z[\]^_`#  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%'(5678IJKLMNOPQRUSTVWXYZ[\]^_`Z][^\[\]^_`abcdefghijklmnopaaqrst qrsuvwxyz{tqrst|}~|}~|}~/Generate a lambda, but prettier (if possible). D Generally no lambda is good, but removing just some arguments isn' t so useful. <Convert expressions which have redundant junk in them away. @ Mainly so that later stages can match on fewer alternatives.  Z[\]^_` &run in test mode? which files to run it on which settingsfiles to use where to generate reports the hints to ignore display all skipped items color the result options for cpphs the data directory the text encoding "source files to look for hints in #the extensions (may be prefixed by No) *Exit out if you need to display help info   A suggestion - the Show instance is of particular use. ;From a suggestion, extract the file location it refers to. YThis function takes a list of command line arguments, and returns the given suggestions. # To see a list of arguments type  hlint --help at the console. - This function usually writes to the stdout/stderr streams. As an example: / do hints <- hlint ["src", "--ignore=Use map"] 6 when (length hints > 3) $ error "Too many hints!"  ! " #$%&'()*+,*+-*+.*+/*+0*+1*+2*+3*45*46*47*89*8:*8;*8<*8=*8>*8?*8@*8A*8B*8C*8D*8E*8F*8G*8H*8I*8J*KL*KM*NO*NP*NQ*NR*NS*NT*NU*NV*NW*NX*NY*NZ*N[*N\*N]*N^*N_*N`*Na*Nb*Nb*Nc*de*df*dg*dh*di*dj*dk*dl*dm*dn*do*do*pq*pr*ps*pt*pu*pv*pv*wx*wy*wz*w{*w|*w}*w~*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w*w************************************************************************** * * * * ******************** *!*"*#*$*%*&*'*(*)***+*,*-*.*/*0*.*1*1*2*2*3*4*5*6*7*8*9*:*;*<*=*>*?*@*@*A*A*B*C*D*E*F*G*H*I*J*K*L*M*N*O*P*Q*R*S*T*U*V*W*X*Y*Z*[*\*]*^*_*`*a*b*c*d*e*f*g*h*i*j*k*l*m*n*o*p*q*r*s*t*u*v*w*w*x*y*z*{*{*|*}*|*~*~*************S*****T*********************************************************************************************************************************** * * * * * ******************** *!*"*#*$*%*&*'*(*)***+*,*,*-*.*/*0*1*2*3*4*5*6*7*8*9*:*;*<*=*>*?*@*A*B*C*D*E*F*G*H*I*J*K*F*L*M*N*L*O*O*P*Q*Q*R*R*S*T*U*VW*VX*VY*VZ*V[*V\*V]*V^*V_*V`*Va*Vb*Vc*Vd*Ve*Vf*Vg*Vg*Vh*Vi*Vj*Vk*Vl*Vm*Vm*Vn*Vo*Vo*Vp*Vq*Vr*Vr*Vs*Vt*Vu*Vv*Vw*Vx*Vyz{|z{}z{~z{z{z{z{z{z{z{z{      !" # $ % & & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P  Q R  S T U V W X Y Z [ \ ] ^ _ ` a b c d a cefghijklmnopqrstuvwxyz{|}~I !   hlint-1.7Language.Haskell.HLintHSE.TypeHSE.Util HSE.MatchParallelUtil HSE.Bracket HSE.Evaluate HSE.NameMatchHSE.AllSettingsIdea Hint.Type Hint.Match Hint.List Hint.Monad Hint.Bracket Hint.NamingHint.Structure Hint.Import Hint.PragmaHint.Extensions Hint.Util Hint.ListRec Hint.LambdaHint.AllApplyTest Paths_hlintCmdLineReportHLint SuggestionsuggestionLocationhlintType_Pat_Exp_Decl_Module_Shaskell-src-exts-1.9.0Language.Haskell.Exts.AnnotatedreadExtensionsparseFileContentsWithCommentsparseFileContentsWithModeparseFileContentsWithExtsparseFileContentsparseFileWithCommentsparseFileWithModeparseFileWithExtsLanguage.Haskell.Exts.ParserparseWithComments parseWithMode Parseable$Language.Haskell.Exts.InternalParserparseStmtWithCommentsparseStmtWithMode parseStmtparseTypeWithCommentsparseTypeWithMode parseTypeparseDeclWithCommentsparseDeclWithMode parseDeclparsePatWithCommentsparsePatWithModeparsePatparseExpWithCommentsparseExpWithModeparseExpparseModuleWithCommentsparseModuleWithMode parseModule&Language.Haskell.Exts.Annotated.Fixity applyFixities AppFixityLanguage.Haskell.Exts.Pretty prettyPrintprettyPrintWithModeprettyPrintStyleMode defaultMode PPOffsideRule PPSemiColonPPInLine PPNoLayoutPPLayoutIndent linePragmaslayoutspacing onsideIndent whereIndent letIndent caseIndentdoIndent classIndentPPHsModePretty Language.Haskell.Exts.ParseMonaddefaultParseModefromParseResultParseOk ParseFailed ParseResultfixitiesignoreLinePragmasignoreLanguagePragmas extensions parseFilename ParseModeLanguage.Haskell.Exts.Fixityinfix_infixl_infixr_ baseFixitiespreludeFixitiesFixityLanguage.Haskell.Exts.ExtensionclassifyExtensionknownExtensions glasgowExts impliesExtsOverlappingInstancesUndecidableInstancesIncoherentInstances RecursiveDoParallelListCompMultiParamTypeClassesNoMonomorphismRestrictionFunctionalDependenciesExplicitForall Rank2Types RankNTypesPolymorphicComponentsExistentialQuantificationScopedTypeVariablesImplicitParamsFlexibleContextsFlexibleInstancesEmptyDataDeclsCPPKindSignatures BangPatternsTypeSynonymInstancesTemplateHaskellForeignFunctionInterfaceArrowsGenericsNoImplicitPreludeNamedFieldPuns PatternGuardsGeneralizedNewtypeDerivingExtensibleRecordsRestrictedTypeSynonyms HereDocuments MagicHash TypeFamiliesStandaloneDeriving UnicodeSyntaxPatternSignaturesUnliftedFFITypesLiberalTypeSynonyms TypeOperatorsRecordWildCards RecordPunsDisambiguateRecordFieldsOverloadedStringsGADTs MonoPatBindsNoMonoPatBindsRelaxedPolyRecExtendedDefaultRules UnboxedTuplesDeriveDataTypeableConstrainedClassMethodsPackageImportsImpredicativeTypesNewQualifiedOperatorsPostfixOperators QuasiQuotesTransformListComp ViewPatterns XmlSyntaxRegularPatterns TupleSectionsUnknownExtension Extension*Language.Haskell.Exts.Annotated.ExactPrint exactPrintExactPLanguage.Haskell.Exts.CommentsComment%Language.Haskell.Exts.Annotated.Build metaConPat metaFunctionnameBind patBindWherepatBind simpleFunsfungenNameswildcardnoBindsbindsletStmtgenStmtqualStmtpParenpeListeListlistEaltGWaltcaseEletElamEdoEintPcharPstrPintEcharEstrEfunction pvarTuplevarTuplepTupletuplepAppappFuninfixAppapppvarqvaropvarsymname&Language.Haskell.Exts.Annotated.Syntax=~= tuple_tyconunboxed_singleton_tycon list_tycon fun_tycon unit_tycontuple_tycon_nameunboxed_singleton_tycon_namelist_tycon_namefun_tycon_nameunit_tycon_name ccall_name stdcall_namethreadsafe_name unsafe_name safe_name export_name star_namedot_name bang_name minus_name hiding_namequalified_nameas_nameunboxed_singleton_con tuple_conunit_conunboxed_singleton_con_namelist_cons_nametuple_con_name unit_con_name main_namemain_mod prelude_mod ModuleNameUnitConListConFunConTupleConConsUnboxedSingleCon SpecialConQualUnQualSpecialQNameIdentSymbolNameIPDupIPLinIPNameQVarOpQConOpQOpVarOpConOpOpVarNameConNameCNameModuleXmlPage XmlHybrid ModuleHeadExportSpecListEVarEAbs EThingAll EThingWithEModuleContents ExportSpec importSpecsimportAs importPkg importSrcimportQualified importModule importAnn ImportDeclImportSpecListIVarIAbs IThingAll IThingWith ImportSpec AssocNone AssocLeft AssocRightAssocTypeDecl TypeFamDeclDataDecl GDataDecl DataFamDecl TypeInsDecl DataInsDecl GDataInsDecl ClassDeclInstDecl DerivDecl InfixDecl DefaultDecl SpliceDeclTypeSigFunBindPatBindForImpForExpRulePragmaDeclDeprPragmaDeclWarnPragmaDecl InlineSigInlineConlikeSigSpecSig SpecInlineSigInstSig AnnPragmaDeclAnnTypeAnn ModuleAnn AnnotationDataTypeNewType DataOrNewDHeadDHInfixDHParenDeclHeadIHeadIHInfixIHParenInstHeadDerivingBDeclsIPBindsBindsIPBindMatch InfixMatch QualConDeclConDecl InfixConDeclRecDecl FieldDeclGadtDeclClsDecl ClsDataFamClsTyFamClsTyDefInsDeclInsTypeInsDataInsGDataBangedTy UnBangedTy UnpackedTyBangType UnGuardedRhs GuardedRhssRhs GuardedRhsTyForallTyFunTyTupleTyListTyAppTyVarTyConTyParenTyInfixTyKindTypeBoxedUnboxed KindedVar UnkindedVar TyVarBindKindStarKindBangKindFn KindParenKindVarKindFunDepCxSingleCxTupleCxParenCxEmptyContextClassAInfixAIParamEqualPAsstCharStringIntFracPrimIntPrimWord PrimFloat PrimDoublePrimChar PrimStringLiteralVarIPVarConLitInfixAppAppNegAppLambdaLetIfCaseDoMDoTuple TupleSectionListParen LeftSection RightSection RecConstr RecUpdateEnumFrom EnumFromTo EnumFromThenEnumFromThenToListCompParComp ExpTypeSigVarQuoteTypQuote BracketExp SpliceExp QuasiQuoteXTagXETagXPcdataXExpTag CorePragma SCCPragma GenPragmaProc LeftArrApp RightArrAppLeftArrHighAppRightArrHighAppExpXNameXDomNameXAttr ExpBracket PatBracket TypeBracket DeclBracketBracketIdSplice ParenSpliceSplice PlayRiskyPlaySafeSafetyStdCallCCallCallConvLanguagePragma OptionsPragmaAnnModulePragma ModulePragmaGHCHUGSNHC98YHCHADDOCK UnknownToolTool ActiveFrom ActiveUntil ActivationRuleRuleVar TypedRuleVarDeprTextWarnText WarningTextPVarPLitPNegPNPlusK PInfixAppPAppPTuplePListPParenPRecPAsPat PWildCardPIrrPat PatTypeSigPViewPatPRPatPXTagPXETagPXPcdataPXPatTagPXRPats PExplTypeArg PQuasiQuotePBangPatPatPXAttrRPStarRPStarGRPPlusRPPlusGRPOptRPOptGRPatOpRPOpRPEitherRPSeqRPGuardRPCAsRPAsRPParenRPPatRPat PFieldPat PFieldPunPFieldWildcardPatField Generator QualifierLetStmtRecStmtStmtQualStmt ThenTransThenByGroupBy GroupUsing GroupByUsing FieldUpdateFieldPun FieldWildcardAlt UnGuardedAlt GuardedAlts GuardedAltamapann AnnotatedLanguage.Haskell.Exts.SrcLoc<^^><**<+?><++> combSpanInfoinfoSpan noInfoSpan isNullSpan mergeSrcSpan mkSrcSpan srcSpanEnd srcSpanStart srcColumnsrcLine srcFilenameSrcLocsrcSpanEndColumnsrcSpanEndLinesrcSpanStartColumnsrcSpanStartLinesrcSpanFilenameSrcSpanunLocLoc srcInfoPoints srcInfoSpan SrcSpanInfo startColumn startLinefileName getPointLoc fromSrcInfo toSrcInfoSrcInfopretty-1.0.1.1Text.PrettyPrint.HughesPJMode OneLineModeLeftMode ZigZagModePageModeStylemode lineLengthribbonsPerLinestyleuniplate-1.5.1!Data.Generics.Uniplate.OperationsholesBi contextsBi rewriteBiM rewriteBi transformBiM transformBi childrenBi universeBiparaholescontextsrewriteMrewrite transformM transformchildrenuniversedescendMdescenduniplateUniplate descendBiM descendBibiplateBiplateopExpexpOp moduleDecls moduleName moduleImports modulePragmasisCharfromCharisString fromString fromParen fromPParen fromTyParendeclBindunqualisDolisDotisDotAppdotAppdotApps getEquationsreplaceBranchesappsfromApps childrenApps descendApps descendAppsM universeApps transformAppstransformAppsM universeS childrenSvarspvarsuniverseParentExp showSrcLoctoSrcLoc nullSrcLocandropAnnelem_nub_ intersect_neqListeqListeqMaybe getFixity isPString fromPStringisVarisApp isInfixAppisListisAnyAppisParenisLambdaisMDoisBoxed isDerivDeclisFunDep isPBangPatisPExplTypeArg isPFieldPun isFieldPunisPFieldWildcardisFieldWildcard isPViewPat isParComp isPatTypeSig isQuasiQuote isSectionallowRightSectionallowLeftSectionisLexeme/=~=NamedtoNamed fromNamedVar_NoVar_PVar_NoPVar_App1NoApp1App2NoApp2Viewview~=isConisSymparallel parallel1 parallelNBoxgetDirectoryContentsRecursive partitionM concatMapMconcatZipWithMlistM'headDef unzipEitherlimitltrimtrimBy groupSortFstdisjointunsnocreadFileEncoding warnEncoding exitMessagegzip descendIndexdefaultExtensionsnotNullisLeftisRight badExtensionsBracketsremParenaddParenisAtom needBracketparendescendBrackettransformBracket rebracket1 appsBracketevaluate evaluate1 NameMatch nameMatchimportSpecNames ParseFlagscpphslanguageencodinginfixes parseFlagsparseFlagsNoLocations parseString applyFixity parseFile parseResultSettingInfixBuiltinMatchExplhsrhssideClassifyrankShintSfuncSFuncNameRankErrorWarningIgnoregetRank isUnifyVar readSettings readHints readSetting readPragmareadSide readFuncsgetNameserrorOn findSettings findSettingfindExpdefaultHintName isClassify isMatchExp ParseErrormsgfuncrankhintlocfromtoshowANSIshowEx isParseErrorrawIdeaideawarnerrHintModuHintmoduHintDeclHintdeclHint readMatchreadRule dotVersion findIdeas matchIdeaunifyunifyDefunifyExpunifyPatchecksubst checkSide checkDefine performEval unqualify addBracketlistHintlistDecllistExp stringTypeisAppendchecks useStringuseListuseCons typeListChar typeString monadHintmonadExp monadCallbadFuncs monadReturn monadJoinmonadLetfromRet bracketHintbracketdollar splitInfix namingHintnamingshorten suggestName replaceNames structureHint useGuardsasGuards importHintwrapsimplify simplifyHeadreduce hierarchynewNames pragmaHint pragmaIdea languageDupes strToLanguage optToLanguageextensionsHintusedhasSun&hasThasT2has niceLambda niceDotApp simplifyExpBranchBListBConsBNilListCase listRecHint matchListRecasDofindCasedelCons eliminateArgs findBranchfindPatreadPat lambdaHint lambdaDecl etaReduce lambdaExp staticHints dynamicHints applyHint applyHintStr parseFailedcontextparseOkallHintsclassifytest runTestDyn runTestTypesrunTest parseTestFileversionbindirlibdirdatadir libexecdir getBinDir getLibDir getDataDir getLibexecDirgetDataFileNameOptsLanguage FindHintsEncodingDataDirExtIncludeDefineColorShowAllSkipHintsVerHelpCmdcmdTestcmdFiles cmdHintFiles cmdReports cmdIgnore cmdShowAllcmdColorcmdCpphs cmdDataDir cmdEncoding cmdFindHints cmdLanguagegetCmd exitWithHelp versionTexthelpTextgetFile getHintFile getExtensions readExtension writeTemplate writeReport writeIdea escapeHTMLfromSuggestionrunHints