h&`G      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"""""""#$$$$$$$$$$$$$$$$$%%%%&''((((((((((((((((((((((((((((((((((((((((()))))))))))))))))))))))))***************************************************************************************++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--..... Safe-Inferred 89:;=?= haskell-ci(Return the part after the first argumentafterInfix "BAR" "FOOBAR XYZZY" Just " XYZZY" haskell-ciafterPrefix "FOO" "FOOBAR" Just "BAR" haskell-ci4findMaybe readMaybe ["foo", "1", "bar"] :: Maybe IntJust 1 haskell-ci"Whether two ranges are equivalent. &'(p)* +,-. /jklmno012345678%#$9:;<=" !>MP?@ABCDEFNOGVTUHIJKRSLQWXZ[\]^_`abcdefghiqrstuvwxyz{|}~ &'(p)* +,-. /jklmno0123468%#$9:<=" !>MP?@ABCDFNOGVTUHIJKRSWqrstuvwxy{|}~ 57;ELQXZ[\]^_`abcdefghiz Safe-Inferred 89:;=?Y haskell-ci!File fields to final value parser haskell-ci File to read Safe-Inferred89:;=?9 haskell-ciMore general version of . haskell-ciThis is a bit tricky since it has to cover globs which have embedded , chars. But we don't just want to parse strictly as a glob since we want to allow http urls which don't parse as globs, and possibly some system-dependent file paths. So we parse fairly liberally as a token, but we allow , inside matched {} braces. Safe-Inferred/89:;=?K haskell-ci8Bash completion action for option argument. Example: "file" or  "directory".See  https://github.com/pcapriotti/optparse-applicative#actions-and-completers and  https://www.gnu.org/software/bash/manual/html_node/Programmable-Completion-Builtins.html. haskell-ci"Meta variable for option argument. haskell-ciHelp text for option. Y Y Safe-Inferred")*89:;=? Safe-Inferred89:;=?= haskell-ci is  MonadError without catch Safe-Inferred 89:;=?} Safe-Inferred 89:;=?  Safe-Inferred "89:;=? E haskell-ciRead . On error, return  emptyGitConfg.  Safe-Inferred 89:;=?   Safe-Inferred 89:;=?!; haskell-ci ShellCheck disagrees. haskell-ciused by validations haskell-cimade by .  Safe-Inferred 89:;=?!    Safe-Inferred 89:;=?! Safe-Inferred 89:;=?"1 Safe-Inferred 89:;=?# haskell-ciJobsN:M - N ghcs (cabal -j), M threads (ghc -j)6let parseJobs = C.simpleParsec :: String -> Maybe JobsparseJobs "2:2"Just (BothJobs 2 2)parseJobs ":2"Just (GhcJobs 2) parseJobs "2"Just (CabalJobs 2)parseJobs "garbage"Nothing Safe-Inferred 89:;=?%M haskell-ci Normalised9parseI = maybe (error "foo") id . traverse C.simpleParsec&normaliseInstalled $ parseI ["-Cabal"].InstalledDiff (fromList [PackageName "Cabal"])$normaliseInstalled $ parseI ["-all"]InstalledOnly (fromList [])5normaliseInstalled $ parseI ["-all", "+transformers"]5InstalledOnly (fromList [PackageName "transformers"])   Safe-Inferred"/189:;=?& haskell-cirun with latest GHC haskell-cirun with specified GHC version   Safe-Inferred89:;=?&s Safe-Inferred89:;=?& Safe-Inferred89:;=?'? Safe-Inferred"189:;=?'   Safe-Inferred"189:;=?' Safe-Inferred89:;=?(= Safe-Inferred"189:;=?(   Safe-Inferred 89:;=?( Safe-Inferred 89:;=?*S haskell-ciAlphas, RCs and HEAD. haskell-ci2Map compiler version to one available to download.This way we can map e.g. 9.4.1 to 9.4.0.20220501 i.e. a prerelease. haskell-ciPreferred Cabal Version haskell-ci GHC Version haskell-cihead.hackage range Safe-Inferred 89:;=?* Safe-Inferred 89:;=?+ haskell-ci=Convert cabal-install version to a version ghcup understands. Safe-Inferred 89:;=?+   Safe-Inferred89:;=?-$ haskell-ciWrite shell command haskell-ci Write comment haskell-ciCommented block.If the block is empty (or comments only), nothing might be written. haskell-cicommand haskell-cicomment Safe-Inferred 89:;=?/8 haskell-ci+Round down a first version in major series.let rd = map prettyShow . S.toList . roundDown . S.fromList . map C.mkVersionrd [][]rd [ [8,0,2] ]["8.0","8.0.3"]2rd [ [8,0,2], [8,2,2], [8,4,4], [8,6,5], [8,8,1] ]'["8.0","8.2","8.4","8.6","8.8","8.8.2"]2rd [ [8,6,1], [8,6,2], [8,6,3], [8,6,4], [8,6,5] ]/["8.6","8.6.2","8.6.3","8.6.4","8.6.5","8.6.6"]  Safe-Inferred 89:;=?/v! Safe-Inferred"/189:;=?/" Safe-Inferred%&89:;=?1 haskell-ci all versions (useful for Travis) haskell-ci linux jobs haskell-ci macos jobs haskell-ciconfig# Safe-Inferred%&89:;=?1$ Safe-Inferred"%&'89:;=?2n haskell-ci7Auxiliary definitions, probably useful for all backends% Safe-Inferred 89:;=?4D haskell-ci Modules arguments to the libraryWe check the library component%If there are hs-source-dirs, use them%otherwise use exposed + other modulesAlso add default-extensionsNote:2 same argument work for hlint too, but not exactly haskell-ci all compilers haskell-ci head.hackage haskell-ci hlint-jobs& Safe-Inferred%&'89:;=?4' Safe-Inferred 89:;=?4( Safe-Inferred 89:;=?5? haskell-ci .cabal haskell-ci@cabal.project##) Safe-Inferred)*89:;=?> haskell-ciThis is not complete YAML document tree; only as much as we need in  haskell-ci. haskell-ciinline JSON (for compactness) haskell-ciRe-annotate top-level term haskell-ciConvert  to ?. ann can be converted to comments.Examples$let demo = putStr . prettyYaml lines demo "foo"foodemo "foo: bar" "foo: bar" demo $ YString "a comment" "foo" # a commentfoodemo $ YBool "a comment" True # a commenttruedemo $ YList "" [][]#demo $ YList "" ["foo", "foo: bar"]- foo - "foo: bar"demo $ YList "comment1" [YString "comment2" "foo", YString "comment3" "foo: bar"] # comment1# # comment2- foo # comment3 - "foo: bar"demo $ YKeyValues "" []{}demo $ YKeyValues "" [("", "foo", "bar"), ("", "help", "welcome")]foo: bar help: welcomelet nested = YKeyValues "comment1" [("comment2", "foo", YString "comment3" "bar"), ("comment4", "help", YString "comment5" "welcome")] demo nested # comment1# # comment2# # comment3foo: bar # comment4# # comment5 help: welcome0demo $ YKeyValues "top" [("", "nested", nested)] # topnested: # comment1 # # comment2 # # comment3 foo: bar # comment4 # # comment5 help: welcome>demo $ YValue "inline json" $ Aeson.toJSON [True, False, True] # inline json[true,false,true]demo $ YKeyValues "" [ ("", "addons", YValue "" $ Aeson.toJSON $ [Just "foo", Just "bar", Nothing]) ]addons: ["foo","bar",null]/demo $ YString "" $ unlines ["foo","bar","baz"]"foo\nbar\nbaz\n":let multiline = YString "" $ unlines ["foo", "bar", "baz"]&demo $ YList "" [multiline, multiline]- | foo bar baz- | foo bar bazdemo $ YKeyValues "" [("", "keyA", multiline), ("", "keyB", multiline)]keyA: | foo bar bazkeyB: | foo bar baz haskell-ciEncode string to our best knowledge YAML string should be encoded. Note: different than JSON+putStrLn $ encodeYAMLString "\NULabcd\n" "" "\x00abcd\n" haskell-ciProduce a hex encoding of a character. Uses two hex chars if they are enough, otherwise four. For out of BMP characters, do nothing.putStrLn $ hexChar ' ' ""\x20putStrLn $ hexChar '\1234' ""\x04d2* Safe-Inferred"%&89:;=??_ haskell-cisourceline with optional key>>+ Safe-Inferred"%&'89:;=?@, Safe-Inferred"%&89:;=?A haskell-ci Steps with uses haskell-ci Steps with run00- Safe-Inferred"%&'89:;=?Dw haskell-ciGitHub is very lenient and undocumented. We accept something. Please, write a patch, if you need an extra scheme to be accepted.:parseGitHubRepo "git@github.com:haskell-CI/haskell-ci.git"Just "haskell-CI/haskell-ci"6parseGitHubRepo "git@github.com:haskell-CI/haskell-ci"Just "haskell-CI/haskell-ci">parseGitHubRepo "https://github.com/haskell-CI/haskell-ci.git"Just "haskell-CI/haskell-ci":parseGitHubRepo "https://github.com/haskell-CI/haskell-ci"Just "haskell-CI/haskell-ci"8parseGitHubRepo "git://github.com/haskell-CI/haskell-ci"Just "haskell-CI/haskell-ci". Safe-Inferred"189:;=?Fu haskell-ciAdjust the generated YAML output with patch files, if specified. We do this in a temporary file in case the user did not pass --output (as it would be awkward to patch the generated output otherwise). haskell-ciFind  REGENDATA in a string haskell-ci.Read project file and associated .cabal files. haskell-cifilepath haskell-ci what to do when file don't exist haskell-ci continuation/01234/56/57/89/:;/:</0=/0>/0?23@/AB/AC/DE/FG/FH/FI/FJ2KL2KM/AN/0O/0P/0Q/0R/ST/UV/DW/DX/DY/DZ/0[/0\/0]/0^/0_/0`/0a/Fb/Fc2Kd/ef/Dg/Dh/0i/0j/Ak2Kl/mn/Do/ep/Dq/rs/tu/Sv/Uw/0x/yz/{|/}~/0/02/02222/2/D22//02//2/0//222/2K2K2K2K2K2K2K2K2K2K////0/0/0/0/0/0/0/0/0/0/0/0/0/A/A/A/A/A/:/://///////5/5/5/5/5/5/5/5/5/5/5/5/5/5/5/5/5/5/5/5/5/5/5/r/r/r/r/r/r/r/r/F/F/F/F/F/F/D/D/D/D/D/D/D/D/D/D/D/D/D/D/D/D/D/D/D////e/e/e/e/e/e/e/e/e/e/e/e/e/e/e/e/e/e/e/e/e/e/e/e/e/e/e/e/e/e/e/e//m/m/m/m//////////////y/y/y/y/y/y/y/y/y/y/y/y/y/y/y/y/y/y/y/y/y/y//////////8/8/8/8/8/8/8/8/8/8/8/8////{/{////y/{/{/0//////////////////y/y///5/5                                                       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"""""""#$$$$$$$$$$$$$$$$$%%%%&''((((((((((((((((((((((((((((((((((((((((()))))))))))))))))))))))))***************************************************************************************++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--....))-....:haskell-ci-0.16-J1JvrkgkaE0EHRnHNCukzb-haskell-ci-internalHaskellCI.PreludeHaskellCI.OptionsGrammarHaskellCI.ParsecUtilsHaskellCI.NewtypesHaskellCI.OptparseGrammarHaskellCI.MonadErrHaskellCI.ListHaskellCI.HeadHackageHaskellCI.GitConfigHaskellCI.GhcupHaskellCI.ErrorHaskellCI.DiagnosticsHaskellCI.Config.UbuntuHaskellCI.Config.PackageScopeHaskellCI.Config.JobsHaskellCI.Config.InstalledHaskellCI.Config.HLintHaskellCI.Config.FoldsHaskellCI.Config.EmptyHaskellCI.Config.DumpHaskellCI.Config.DoctestHaskellCI.Config.DocspecHaskellCI.Config.CopyFieldsHaskellCI.Config.ConstraintSetHaskellCI.Config.ComponentsHaskellCI.CompilerHaskellCI.PackageHaskellCI.CabalHaskellCI.Bash.Template HaskellCI.ShHaskellCI.ShVersionRangeHaskellCI.TestedWithHaskellCI.ConfigHaskellCI.JobsHaskellCI.Config.ValidityHaskellCI.AuxiliaryHaskellCI.ToolsHaskellCI.BashHaskellCI.VersionInfo HaskellCI.CliHaskellCI.YamlSyntaxHaskellCI.Travis.YamlHaskellCI.TravisHaskellCI.GitHub.YamlHaskellCI.GitHub HaskellCIbaseGHC.Base++ghc-primGHC.PrimseqGHC.Listfilterzip System.IOprint Data.Tuplefstsnd otherwisemap$coerceGHC.Num fromInteger-GHC.Real fromRationalGHC.EnumenumFrom enumFromThen enumFromToenumFromThenTo GHC.Classes==>=negate>>=>>fmapreturnControl.Monad.Failfail Data.String fromString fromIntegral realToFrac toInteger toRational<>memptymappendmconcat<*>pure*>BoundedEnumEq GHC.FloatFloating FractionalIntegralMonadFunctorNumOrdGHC.ReadReadReal RealFloatRealFracGHC.ShowShowData.Typeable.InternalTypeable MonadFailIsString Applicative Data.FoldableFoldableData.Traversable Traversable GHC.GenericsGeneric SemigroupMonoid GHC.TypesBoolStringCharDoubleFloatInt ghc-bignumGHC.Num.IntegerIntegerGHC.Num.NaturalNatural GHC.MaybeMaybeOrderingRationalIOWord Data.EitherEitherNonEmptyFalseNothingJustTrue:|LeftRightLTEQGT Text.Readreadbytestring-0.11.3.1Data.ByteString.Internal ByteString,Cabal-syntax-3.10.1.0-CzFvy6Vr4NPEeFMO9pQqoEDistribution.FieldGrammar^^^(Distribution.Types.VersionRange.Internal noVersion anyVersion VersionRangeDistribution.Types.Version mkVersionVersionDistribution.Parsec simpleParsecDistribution.Pretty prettyShowDistribution.Compat.Lens.~^.&toListOfoverDistribution.Utils.GenerictoUTF8BS fromUTF8BScontainers-0.6.5.1Data.Set.InternalSetbinary-0.8.9.0Data.Binary.ClassBinaryminmaxcompare><=</=||not&&GHC.ErrerrorerrorWithoutStackTrace undefined$!.=<<apasTypeOfconstflipiduntilwhen<|><*<$subtract*+abssignumcurryuncurry Data.Functor<$>void Data.Functionon Data.Maybe fromMaybeisJust isNothingmapMaybemaybe!!breakcycledrop dropWhileiteratelookuprepeat replicatereversescanlscanl1scanrscanr1spansplitAttake takeWhileunzipunzip3zip3zipWithzipWith3showChar showParen showStringshowsshowshowList showsPrecShowSmaxBoundminBoundfromEnumpredsucctoEnum^^^evengcdlcmodd/recipdivdivModmodquotquotRemremceilingfloorproperFractionroundtruncate GHC.UnicodeisSpaceisUppertoLower**acosacoshasinasinhatanatanhcoscoshexploglogBasepisinsinhsqrttantanhatan2 decodeFloat encodeFloatexponent floatDigits floatRadix floatRangeisDenormalizedisIEEE isInfiniteisNaNisNegativeZero scaleFloat significandText.ParserCombinators.ReadPReadSlex readParenreadList readsPrec Data.ProxyProxyeitherpartitionEithers readMaybereads Data.OldList intercalate isPrefixOflinesnubunlinesunwordswordsallandanyconcat concatMapfor_notElemor sequence_ traverse_elemfoldMapfoldlfoldl'foldrlengthmaximumminimumnullproductsumtoListGHC.Exception.Type ExceptiondisplayException fromException toExceptionGHC.IO.Exception userErrorIOError IOExceptionGHC.IOFilePathioError appendFilegetChar getContentsgetLineinteractputCharputStrputStrLnreadFilereadIOreadLn writeFileData.Functor.IdentityIdentity runIdentity sequenceAtraverse Control.Monadunless Data.VoidVoid text-1.2.5.0Data.Text.InternalText<&>mapM_sequencemapMliftA2Data.Bifunctorbimap BifunctorData.Bitraversable bitraverse Bitraversable bimapDefaultbifoldMapDefaultData.Bifoldablebifoldrbifoldl bifoldMapbifold BifoldablesecondfirstData.List.NonEmptygroupByControl.Monad.IO.ClassliftIOMonadIOControl.Exception.Basehandlefoldr1foldl1tails stripPrefixlastinit*network-uri-2.6.4.2-HOWkOsJ6iQ9LdZ2sAMVHdr Network.URIURIexceptions-0.10.4Control.Monad.Catch MonadThrow MonadMask MonadCatch,generic-lens-lite-0.1-EShSJLq9Pn2DrQYb2s5RhUData.Generics.Lens.Litefield2indexed-traversable-0.1.2.1-8vx0wmavlNy98oYlP65ujl WithIndexifoldr%lattices-2.0.3-8MWIcpOBDVF7cmpNC7jXlsAlgebra.Lattice/\\/LatticebottomBoundedJoinSemiLatticetopBoundedMeetSemiLatticeBoundedLattice uriToStringparseURImappedhead afterInfix afterPrefix findMaybeequivVersionRanges$fPrettyNatural$fParsecNatural$fLatticeVersionRangereadAndParseFileAlaSet getAlaSetRangeInt' HeadVersiongetHeadVersionNoCommasPackageLocationalaSetalaSet'hack$fPrettyPackageLocation$fParsecPackageLocation$fPrettyNoCommas$fParsecNoCommas$fPrettyHeadVersion$fParsecHeadVersion $fPrettyInt' $fParsecInt' $fPrettyRange $fParsecRange$fPrettyAlaSet$fParsecAlaSet$fNewtypeSetAlaSet$fNewtypeVersionRangeRange$fNewtypeIntInt'$fNewtypeMaybeHeadVersion$fNewtype[]NoCommas$fNewtype[]PackageLocation ParsecPrettyOptionsGrammarmetaCompleterHelpmetahelphelp rangeFieldBashCompletionActionMetaVarHelpmetaActionHelp($fOptionsGrammarParsecParsecFieldGrammar$fParsecPrettyaOptparseGrammarrunOptparseGrammar+$fOptionsGrammarParsecPrettyOptparseGrammar)$fFieldGrammarParsecPrettyOptparseGrammar$fApplicativeOptparseGrammar$fFunctorOptparseGrammarMonadErrthrowErr$fMonadErreEither ListBuilder buildListitem$fMonadListBuilder$fApplicativeListBuilder$fFunctorListBuilderdefaultHeadHackageheadHackageRepoStanza GitConfig gitCfgRemotesemptyGitConfig readGitConfig$fShowGitConfigdefaultGhcupVersion FromHsCiError fromHsCiError HsCiErrorShellCheckErrorValidationError FailError$fExceptionHsCiError$fFromHsCiErrorHsCiError$fShowHsCiError DiagnosticsT Diagnostics unDiagnosticsMonadDiagnostics putStrLnErr putStrLnErrs putStrLnWarn putStrLnInforunDiagnosticsT$fMonadDiagnosticsIO$fMonadDiagnosticsDiagnosticsT$fFunctorDiagnosticsT$fApplicativeDiagnosticsT$fMonadDiagnosticsT$fMonadIODiagnosticsT$fMonadCatchDiagnosticsT$fMonadMaskDiagnosticsT$fMonadThrowDiagnosticsTUbuntuXenialBionicFocalJammy showUbuntu$fPrettyUbuntu$fParsecUbuntu $fEqUbuntu $fOrdUbuntu $fShowUbuntu $fEnumUbuntu$fBoundedUbuntu PackageScopePackageScopeNonePackageScopeLocalPackageScopeAll$fPrettyPackageScope$fParsecPackageScope$fEqPackageScope$fShowPackageScopeJobs CabalJobsGhcJobsBothJobs cabalJobsghcJobs $fPrettyJobs $fParsecJobs $fShowJobsInstalledNormalised InstalledDiff InstalledOnly Installed InstalledAll InstalledNoneAddRemovenormaliseInstalled$fParsecInstalled$fPrettyInstalled$fShowInstalledNormalised $fEqInstalled$fShowInstalledHLintJobHLintJobLatest HLintConfigcfgHLintEnabled cfgHLintJob cfgHLintYamlcfgHLintOptionscfgHLintVersioncfgHLintDownloaddefaultHLintVersionhlintConfigGrammar$fPrettyHLintJob$fParsecHLintJob$fShowHLintConfig$fGenericHLintConfig$fBinaryHLintConfig $fEqHLintJob$fShowHLintJob$fGenericHLintJob$fBinaryHLintJobFoldsgetFoldsFold FoldSDist FoldUnpack FoldBuildFoldBuildInstalledFoldBuildEverythingFoldTest FoldHaddock FoldStackage FoldCheck FoldDoctest FoldHLintFoldConstraintSetsshowFold possibleFolds $fPrettyFolds $fParsecFolds$fNewtypeSetFolds$fEqFold $fOrdFold $fShowFold $fEnumFold $fBoundedFold EmptyGrammarEGrunEG$$fOptionsGrammarTypeableEmptyGrammar"$fFieldGrammarTypeableEmptyGrammar$fApplicativeEmptyGrammar$fFunctorEmptyGrammar DumpGrammarDGrunDG!$fOptionsGrammarPrettyDumpGrammar$fFieldGrammarPrettyDumpGrammar$fApplicativeDumpGrammar$fFunctorDumpGrammar DoctestConfigcfgDoctestEnabledcfgDoctestOptionscfgDoctestVersioncfgDoctestFilterEnvPkgscfgDoctestFilterSrcPkgsdefaultDoctestVersiondoctestConfigGrammar$fShowDoctestConfig$fGenericDoctestConfig$fBinaryDoctestConfig DocspecConfigcfgDocspecEnabledcfgDocspecOptions cfgDocspecUrlcfgDocspecHashdocspecConfigGrammar$fShowDocspecConfig$fGenericDocspecConfig$fBinaryDocspecConfig CopyFieldsCopyFieldsNoneCopyFieldsSome CopyFieldsAllshowCopyFields$fParsecCopyFields$fPrettyCopyFields$fEqCopyFields$fOrdCopyFields$fShowCopyFields$fEnumCopyFields$fBoundedCopyFields ConstraintSetcsName csGhcVersionscsGhcjs csConstraintscsTests csRunTests csDocspec csBenchmarks csHaddockconstraintSetGrammar$fShowConstraintSet$fGenericConstraintSet Components ComponentsAllComponentsLibs$fParsecComponents$fPrettyComponents$fEqComponents$fShowComponents CompilerRangeRangeGHC RangeGHCJS RangePoints RangeInter RangeUnionCompilerVersionGHCHeadGHCGHCJSmaybeGHCisGHCJS maybeGHCJS compilerKindcompilerVersioncompilerWithinRangeinvertCompilerRangeknownGhcVersionsknownGhcjsVersionscorrespondingCabalVersiondispGhcVersiondispGhcVersionShortdispCabalVersion previewGHC previewCabal ghcMajVertranslateCompilerVersion%$fBoundedMeetSemiLatticeCompilerRange%$fBoundedJoinSemiLatticeCompilerRange$fLatticeCompilerRange$fShowCompilerRange$fEqCompilerVersion$fOrdCompilerVersion$fShowCompilerVersionPackagePkgpkgNamepkgJobspkgDirpkgGpd $fEqPackage $fShowPackage$fGenericPackagedefaultCabalInstallVersioncabalGhcupVersionZzJobs zRegendatazBlocks zTestsCond zBenchCondzAptzNotNullzUnwordsdefaultZrenderIOrender$fZinzaZ $fGenericZShMunShMMonadShsh'commentcommentedBlockShComment isComment shToStringshlistToStringshrunShliftSh $fMonadShShM$fMonadErrHsCiErrorShM $fMonadShM$fApplicativeShM $fFunctorShM$fShowShcompilerVersionPredicatecompilerVersionArithPredicate$fShowRTestedWithJobsTestedWithUniform TestedWithAny checkVersions$fPrettyTestedWithJobs$fParsecTestedWithJobs$fEqTestedWithJobs$fShowTestedWithJobsEnvConfigcfgCabalInstallVersioncfgJobs cfgUbuntu cfgTestedWithcfgEnabledJobs cfgCopyFieldscfgLocalGhcOptions cfgSubmodulescfgCachecfgInstallDeps cfgInstalledcfgTests cfgRunTests cfgBenchmarks cfgHaddockcfgHaddockComponentscfgNoTestsNoBenchcfgUnconstraintedcfgHeadHackagecfgHeadHackageOverride cfgGhcjsTests cfgGhcjsToolscfgTestOutputDirectcfgCheckcfgOnlyBranchescfgIrcChannelscfgIrcNicknamecfgIrcPasswordcfgIrcIfInOriginRepocfgEmailNotificationscfgProjectNamecfgFolds cfgGhcHead cfgPostgrescfgGoogleChromecfgEnvcfgAllowFailurescfgLastInSeries cfgLinuxJobs cfgMacosJobs cfgGhcupCabal cfgGhcupJobscfgGhcupVersioncfgAptcfgTravisPatchescfgGitHubPatchescfgInsertVersioncfgErrorMissingMethods cfgDoctest cfgDocspeccfgHLintcfgConstraintSets cfgRawProject cfgRawTraviscfgGitHubActionNamecfgTimeoutMinutes emptyConfig configGrammarreadConfigFileparseConfigFile parseName parseNameBS $fPrettyEnv $fParsecEnv$fNewtypeMapEnv$fGenericConfig JobVersions allVersions linuxVersions macosVersions describeJobsmakeJobVersionscheckConfigValidity Auxiliarypkgsuris projectNamedoctestEnableddocspecEnabledhasTests hasLibraryextraCabalProjectFieldstestShowDetailsanyJobUsesHeadHackage runHaddock haddockFlags auxiliarypkgNameDirVariable'pkgNameDirVariabledoctestJobVersionRange doctestArgshlintJobVersionRange hlintArgsmakeBashhaskellCIVerStr dependencies InputTypeInputTypePackageInputTypeProject ConfigOpt ConfigOptAuto ConfigOptNoOutput OutputStdout OutputFileOptions optOutput optConfigoptCwd optInputTypeoptConfigMorphismCommand CommandTravis CommandBash CommandGitHubCommandRegenerateCommandListGHCCommandDumpConfigCommandVersionInfodefaultOptionsoptionsWithOutputFile optInputType'optionsP configOptPoutputPversionP inputTypeP cliParserInfo parseOptions$fSemigroupConfigOpt$fSemigroupOptions$fShowInputType $fEqConfigOpt$fShowConfigOpt $fShowCommandToYamltoYamlYamlYStringYNumberYBoolYList YKeyValuesYValuereann prettyYaml~>ykeyValuesFilt ylistFilt$fIsStringYaml $fToYamlMap $fToYamlValue $fToYaml[] $fToYamlBool $fToYamlYaml$fEqYaml $fShowYaml $fFunctorYaml$fFoldableYaml$fTraversableYamlTravisAllowFailure tafCompilerTravisAptSourceTravisAptSourceLine TravisApt taPackages taSources TravisAddonstaApt taPostgrestaGoogleChrome TravisJob tjCompilertjEnvtjAddonstjOS TravisMatrix tmIncludetmAllowFailures TravisIRC tiChannels tiSkipJoin tiTemplatetiNick tiPasswordTravisNotificationstnIRCtnEmailTravisBranchestbOnly TravisCache tcDirectories TravisGit tgSubmodulesTravis travisUbuntutravisLanguage travisGit travisCachetravisBranchestravisNotificationstravisServices travisAddons travisMatrixtravisBeforeCachetravisBeforeInstall travisInstall travisScript shListToYaml$fToYamlTravisGit$fToYamlTravisCache$fToYamlTravisBranches$fToYamlTravisIRC$fToYamlTravisNotifications$fToJSONTravisAptSource$fToJSONTravisApt$fToJSONTravisAddons$fToYamlTravisAddons$fToYamlTravisJob$fToYamlTravisAllowFailure$fToYamlTravisMatrix$fToYamlTravis $fShowTravis$fShowTravisMatrix$fShowTravisAllowFailure$fShowTravisJob$fShowTravisAddons$fShowTravisApt$fShowTravisAptSource$fShowTravisNotifications$fShowTravisIRC$fShowTravisBranches$fShowTravisCache$fShowTravisGit travisHeader makeTravis GitHubService ghServImage ghServEnv ghServOptions GitHubUses ghsActionghsIfghsWith GitHubRunghsRunghsEnv GitHubStepghsNameghsStepGitHubMatrixEntry ghmeCompilerghmeAllowFailureghmeSetupMethod SetupMethodHVRPPAGHCUP GitHubJobghjName ghjRunsOnghjNeedsghjIf ghjContainer ghjServicesghjContinueOnError ghjMatrixghjSteps ghjTimeoutGitHubOn ghBranchesGitHubghNameghOnghJobs notEmptyStep mapToYaml$fToYamlGitHubOn$fToYamlSetupMethod$fToYamlGitHubMatrixEntry$fToYamlGitHubStep$fToYamlGitHubService$fToYamlGitHubJob$fToYamlGitHub $fShowGitHub$fShowGitHubJob$fShowGitHubService$fShowGitHubStep$fShowGitHubUses$fShowGitHubRun$fShowGitHubMatrixEntry$fShowSetupMethod$fShowGitHubOn githubHeader makeGitHubmaintravisFromConfigFilebashFromConfigFilegithubFromConfigFile roundDownencodeYAMLStringhexCharparseGitHubRepo patchYAMLfindRegendataArgv getCabalFiles withContents