d8! Safe-Infered  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~   Safe-InferedSSS Safe-InferedfromNamed will return "" when it cannot be represented  toNamed may crash on "" $           Safe-Infered Safe-Infered Safe-Infered FAn encoding is a function to change a handle to a particular encoding #!" #$%&'()*+,-./0123456789:;<=>?@AB#!" #$%&'()*+,-./0123456789:;<=>?@AB!!" #$%&'()*+,-./0123456789:;<=>?@AB Safe-InferedC4Is this item lexically requiring no bracketing ever  i.e. is totally atomic D=Is the child safe free from brackets in the parent position. ) Err on the side of caution, True = don't know E1Add a Paren around something if it is not atomic F*Descend, and if something changes then add/remove brackets appropriately GAdd/=remove brackets as suggested needBracket at 1-level of depth HIJCDEFKGLMNO HIJCDEFKGL HIJCDEFKGLMNO  Safe-InferedPPP  Safe-InferedQRSTUVQRSTUVQRSTUV  Safe-InferedWrun in test mode? X/which files to run it on, nothing = none given Ywhich settingsfiles to use Z*which settignsfiles were explicitly given [where to generate reports \the hints to ignore ]display all skipped items ^color the result _options for CPP `the data directory athe text encoding b"source files to look for hints in c#the extensions (may be prefixed by No) dsupress all console output eSwork between source files, applies to hints such as duplicate code between modules f*Exit out if you need to display help info ghWXYZ[\]^_`abcdeijklfmghWXYZ[\]^_`abcdeijklfmghWXYZ[\]^_`abcdeilkjfm  Safe-InferednParse a Haskell module opqrstuvnwx !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ HIJCDEFKGLPopqrstuvnwxopqrstuvnwx  Safe-InferedHow severe an error is. JErrors are suggestions that should nearly always be a good idea to apply. RWarnings are things that some people may consider improvements, but some may not. &Ignored errors are only returned when --show is passed. yz{|}~yz{|}~ y|{z}~ Safe-Infered  Safe-Infered = !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ HIJCDEFKGLPopqrstuvnwx Safe-Infered Safe-Infered    Safe-Infered Safe-Infered Safe-Infered Safe-Infered Safe-Infered    Safe-Infered Safe-Infered    Safe-Infered Safe-Infered/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.  Safe-Infered Safe-Infered Safe-Infered  Safe-InferedApply hints to a single file. .Apply hints to the contents of a single file. BApply hints to multiple files, allowing cross-file hints to fire.  Safe-Infered  Safe-Infered! Safe-InferedA suggestion - the Show instance is of particular use. ;From a suggestion, extract the file location it refers to. /From a suggestion, determine how severe it is. 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 writes to the stdout/stderr streams, unless --quiet is specified. As an example: 9 do hints <- hlint ["src", "--ignore=Use map","--quiet"] 6 when (length hints > 3) $ error "Too many hints!"  Safe-Infered " # $ %!&!'!(!)*+,-./0120130140150160170180190:;0:<0:=0>?0>@0>A0>B0>C0>D0>E0>F0>G0>H0>I0>J0>K0>L0>M0>N0>O0>P0QR0QS0TU0TV0TW0TX0TY0TZ0T[0T\0T]0T^0T_0T`0Ta0Tb0Tc0Td0Te0Tf0Tg0Th0Th0Ti0jk0jl0jm0jn0jo0jp0jq0jr0js0jt0ju0ju0vw0vx0vy0vz0v{0v|0v|0}~0}0}0}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0 0 0 0 0000000000000000000 0!0"0"0#0$0%0&0'0(0)0*0+0,0-0.0/000102030405060708090:0;0<0=0>0?0=0@0@0A0A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0O0P0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0z0{0|0}0~0000000000000000000000000000^00000_000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0 0 0 0 000000000000000000000 0!0"0#0$0%0&0'0(0)0*0+0,0-0.0/00010203040506070808090:0;0<0=0>0?0@0A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0R0X0Y0Z0X0[0[0\0]0]0^0^0_0`0a0bc0bd0be0bf0bg0bh0bi0bj0bk0bl0bm0bn0bo0bp0bq0br0bs0bt0bt0bu0bv0bw0bx0by0bz0bz0b{0b|0b|0b}0b~0b0b0b0b0b0b0b0b0b        !"#$%&'()*+,-../0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s s t u v w x y z z { | } ~                          ! hlint-1.8.28Language.Haskell.HLintHSE.TypeHSE.Util HSE.Match HSE.NameMatchParallelUtil HSE.Bracket HSE.Evaluate Paths_hlintCmdLineHSE.AllSettingsIdea Hint.Type Hint.Match Hint.List Hint.Monad Hint.Bracket Hint.NamingHint.Structure Hint.Import Hint.PragmaHint.ExtensionsHint.Duplicate Hint.Util Hint.ListRec Hint.LambdaHint.AllApplyTestReportHLintSeverityErrorWarningIgnore SuggestionsuggestionLocationsuggestionSeverityhlintType_Pat_Exp_Decl_Module_Shaskell-src-exts-1.13.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.Syntax AssocNone AssocLeft AssocRightAssocLanguage.Haskell.Exts.ExtensionclassifyExtensionknownExtensions haskell2010 haskell98 glasgowExts impliesExtsOverlappingInstancesUndecidableInstancesIncoherentInstances RecursiveDoParallelListCompMultiParamTypeClassesNoMonomorphismRestrictionFunctionalDependenciesExplicitForAll Rank2Types RankNTypesPolymorphicComponentsExistentialQuantificationScopedTypeVariablesImplicitParamsFlexibleContextsFlexibleInstancesEmptyDataDeclsCPPKindSignatures BangPatternsTypeSynonymInstancesTemplateHaskellForeignFunctionInterfaceArrowsGenericsNoImplicitPreludeNamedFieldPuns PatternGuardsGeneralizedNewtypeDerivingExtensibleRecordsRestrictedTypeSynonyms HereDocuments MagicHash TypeFamiliesStandaloneDeriving UnicodeSyntaxPatternSignaturesUnliftedFFITypesLiberalTypeSynonyms TypeOperatorsRecordWildCards RecordPunsDisambiguateRecordFieldsOverloadedStringsGADTs MonoPatBindsNoMonoPatBindsRelaxedPolyRecExtendedDefaultRules UnboxedTuplesDeriveDataTypeableConstrainedClassMethodsNPlusKPatternsPackageImportsDoAndIfThenElseImpredicativeTypesNewQualifiedOperatorsPostfixOperators 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 ImportSpecTypeDecl 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 XChildTag 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 noInfoSpanspanSize isNullSpan mergeSrcSpan mkSrcSpan srcSpanEnd srcSpanStart srcColumnsrcLine srcFilenameSrcLocsrcSpanEndColumnsrcSpanEndLinesrcSpanStartColumnsrcSpanStartLinesrcSpanFilenameSrcSpanunLocLoc srcInfoPoints srcInfoSpan SrcSpanInfo startColumn startLinefileName getPointLoc fromSrcInfo toSrcInfoSrcInfopretty-1.1.1.0Text.PrettyPrint.HughesPJMode OneLineModeLeftMode ZigZagModePageModeStylemode lineLengthribbonsPerLinestyleuniplate-1.6.7$Data.Generics.Uniplate.Internal.Data transformBis transformer Transformer!Data.Generics.Uniplate.OperationsholesBi contextsBi rewriteBiM rewriteBi transformBiM transformBi childrenBi universeBiparaholescontextsrewriteMrewrite transformM transformchildrenuniversedescendMdescenduniplateUniplate descendBiM descendBibiplateBiplateopExpexpOp moduleDecls moduleName moduleImports modulePragmasfromModuleNameisCharfromCharisString fromString isPString fromPString fromParen fromPParen fromTyParenisVarisApp isInfixAppisListisAnyAppisParenisLambdaisMDoisBoxed isDerivDecl isPBangPatisPExplTypeArg isPFieldPun isFieldPun isPWildCardisPFieldWildcardisFieldWildcard isPViewPat isParComp isPatTypeSig isQuasiQuote isSectiondeclBindallowRightSectionallowLeftSectionunqualfromQual isSpecialisDolisDotisDotAppdotAppdotAppsisLexemeisWHNF getEquations toFunBindfromGuardedAlts toGuardedAltsreplaceBranchesappsfromApps childrenApps descendApps descendAppsM universeApps transformAppstransformAppsM universeS childrenSvarspvarsuniverseParentExp showSrcLoctoSrcLoc nullSrcLocandropAnn/=~=elem_notElem_nub_ intersect_neqListeqListeqMaybe getFixityNamedtoNamed fromNamedVar_NoVar_PVar_NoPVar_App1NoApp1App2NoApp2Viewview~=isConisSym $fNamedDecl$fNamedDeclHead $fNamedMatch $fNamedQOp$fNamedTyVarBind $fNamedPat$fNamedModuleName $fNamedName $fNamedName0 $fNamedQName $fNamedQName0 $fNamedExp $fViewExpVar_$fViewPatPVar_ $fViewExpApp1 $fViewExpApp2Scope NameMatch moduleScope emptyScope scopeImports nameMatch nameQualifyparallelEncodingBoxEncoding_InternalgetDirectoryContentsRecursive partitionM concatMapMconcatMconcatZipWithMlistM'notNullheadDefisLeftisRight unzipEitherforlimitltrimtrimBy groupSortFstdisjointunsnocswapdefaultEncodingreadFileEncoding newEncoding exitMessage captureOutput readFile'gzip descendIndexuniverseParentuniverseParentBidefaultExtensions badExtensionsisAtom needBracketparendescendBracket rebracket1BracketsremParenaddParentransformBracket appsBracket $fBracketsPat$fBracketsType $fBracketsExpevaluateversion getBinDir getLibDir getDataDir getLibexecDirgetDataFileNamecmdTestcmdFiles cmdHintFiles cmdGivenHints cmdReports cmdIgnore cmdShowAllcmdColorcmdCpp cmdDataDir cmdEncoding cmdFindHints cmdLanguagecmdQuietcmdCrossgetCmdCmdCppFlagsCpphs CppSimpleNoCpp exitWithHelp parseString ParseFlagscppFlagslanguageencodinginfixes parseFlagsparseFlagsNoLocations parseFile parseResultSettingInfixBuiltinMatchExpscopelhsrhssidenotesClassify severityShintSfuncSFuncNamedefaultHintName isUnifyVar isClassify isMatchExp readSettings readPragma findSettings ParseErrormsgfuncseverityhintlocfromtonote isParseErrorshowANSIshowExrawIdeaideawarnerr $fShowIdeaHint CrossHint crossHintModuHintmoduHintDeclHintdeclHint readMatchlistHintlistDecllistExpisAppendchecks useStringuseListuseCons typeListChar typeString stringTypebadFuncs monadHintmonadExp monadCall monadReturn monadJoinmonadLetfromRet bracketHintbracket fieldDecldollar splitInfix namingHintPattern structureHinthintsasGuards asPatternpatHintexpHint importHintwrapsimplify simplifyHeadreducereduce1newNames hierarchy desugarQual multiExport pragmaHint pragmaIdea languageDupes strToLanguage optToLanguageextensionsHintminimalExtensionswarningsusedun&hasThasT2hasShas duplicateHint niceLambda simplifyExp niceDotApp listRecHint lambdaHint lambdaDecl etaReduce lambdaExp fromLambda staticHints dynamicHints applyHintFileapplyHintStringapplyHintFilestest$fMonoidResult writeReport$fShowSuggestion