#r"      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz { | } ~       None "#/7;MX_kv(c) 2017-2019 KowainikMPL-2.0Kowainik <xrom.xkov@gmail.com>None "#/7;MX_ksummonerOExplicit flush ensures prompt messages are in the correct order on all systems.summonerRead ( from standard input after arrow prompt.summonerAdd 2 spaces in front.(c) 2017-2019 KowainikMPL-2.0Kowainik <xrom.xkov@gmail.com>None "#/7;MX_k!5 summoner-Data type to keep meta information for every . summoner&Represents PVP versioning (4 numbers).summoner-Represents some selected set of GHC versions.summoner Converts  into dot-separated string.summoner[These are old GHC versions that are not working with default GHC versions when using Stack.summonerJReturns latest known LTS resolver for all GHC versions except default one.summonerReturns base version by  as  .summonerReturns corresponding base" version of the given GHC version.summoner Returns the base/ bounds for the list of the given GHC versions.cabalBaseVersions [Ghc844]"^>= 4.11.1.0"*cabalBaseVersions [Ghc802, Ghc822, Ghc844]">= 4.9.0.0 && < 4.12"summonerCreate corresponding  from the given .!summoner$Show PVP version in a standard way: 1.2.3.4    (c) 2017-2020 KowainikMPL-2.0Kowainik <xrom.xkov@gmail.com>None "#/7;MX_k*L*summonerLicenses supported by summoner.7summoner+Used for downloading the license text form Github.9summoner5Replaces name/year placeholders with the actual data.:summoner9Download the given LICENSE text as it is from GitHub API.;summonerSFetches the license by given name and customises user information where applicable.<summonerShow short information for the *.=summoner3Show license name along with its short description.'()*+6,-./012345789:;<=*+6,-./012345'()978:;<=(c) 2017-2019 KowainikMPL-2.0Kowainik <xrom.xkov@gmail.com>None "#/7;MX_k/Hsummoner,Default GHC version is the latest available.IsummonerDefault version of the Cabal.RsummonerDefault content of the ~/summoner.toml file to be generated by the  summon config command. HIJKLMNOPQR HIJKLMNORPQ(c) 2020 KowainikMPL-2.0Kowainik <xrom.xkov@gmail.com>None "#/7;MX_k3SsummonerSwitcher for offline mode.Vsummoner"Switcher for non-interactive mode.YsummonerIs interactivity mode X?ZsummonerIs connection mode U?STUVWXYZVWXYSTUZ(c) 2017-2019 KowainikMPL-2.0Kowainik <xrom.xkov@gmail.com>None "#/7;MX_k6_summoner-Returns the given value in case of the given  is . Otherwise, it returns .__(c) 2017-2019 KowainikMPL-2.0Kowainik <xrom.xkov@gmail.com>None "#/7;MX_kA`summonerEndline symbol to use with neat-interpolation.asummoner6Creates module name from the name of the package Ex: my-lovely-project  MyLovelyProjectbsummonerGDecides whether the given text is a valid package name. Spec is here: ]https://www.haskell.org/cabal/users-guide/developing-packages.html#package-names-and-versionscsummoner@Validate module name. It should be in the following formatTriple Part1[.PartN] dsummoner$Converts every element of list into * and then joins every element into single  like .fsummonerAConvert every element of a list into text, and squash the results`abcdef`abcdef(c) 2017-2019 KowainikMPL-2.0Kowainik <xrom.xkov@gmail.com>None"#%/7;HMVX_`ka summonerRepresents a user's answergsummonerBuild a prompt For example, YesNoPrompt { yesNoTarget = Cabal> , yesNoPrompt = "Do you want to add a cabal integration?"} 4will generate a following prompt message to the user YDo you want to add a cabal integration? [y]/n -> y [Cabal] will be added to the project isummonertarget (e.g., #TARGET will be added to the project)jsummonerprompt (e.g.,  PROMPT [y]/n)ksummoner(Build a prompt with the TARGET name only2It will generate a simple default prompt such that Add TARGET? [y]/n !summonerParse an answer to  "summoner/Prints the given question in the following way:'printQuestion "Which option?" [A, B, C]"Which option? [A]/B/C" NoteK that the first element in the given list is considered as the default one.lsummonerpAllows users to choose one of the given options. It asks the question until the appropriate answer is received.msummonerLike l but the possible answer are # or $.nsummonerLike m but returns .osummonerEThe message after yes/no questions. The output depends on the answer.   Benchmarks will be added to the project psummonerLike o' but the text is "added to the project"ssummonerQueries for any answer. " Short project description: -> tsummonerLQueries for the answer that should satisfy the given predicate, or be empty.usummoner Queries for an non-empty answer.vsummonerLike s6 but has the default answer if no answer is specified.wsummoner[Queries many answers. If answers are not parsable shows the failing part and queries againysummonerECheck if the folder with the suggested project name is already exist.ksummoner target name"summonerQuestion text.summonerList of available answers.lsummonerParse functionsummonerQuestion text.summonerList of available options.summonerThe chosen option.msummonerTarget and Promptsummoner action for # answersummoner action for $ answerghijklmnopqrstuvwxylmnghijkstuvwxyopqr (c) 2017-2019 KowainikMPL-2.0Kowainik <xrom.xkov@gmail.com>None "#/7;MX_kgZzsummoner6Used for detecting the user decision during CLI input.~summoner Translate z to .summoner Prompt the z+ to terminal output depending on the value.summonerTranslate a pair of dependant zs to the pair of s.z{|}~z{|}~ (c) 2017-2019 KowainikMPL-2.0Kowainik <xrom.xkov@gmail.com>None "#/7;MX_ki%summonerCodec for text values. (c) 2017-2019 KowainikMPL-2.0Kowainik <xrom.xkov@gmail.com>None "#%/7;MX_kz! summoner.Describes simple structure of filesystem tree.summoner7Name of directory (relative) and its containing entriessummoner%File name (relative) and file contentsummoner]Walks through directory tree and write file contents, creating all intermediate directories.summoner@This function converts a string file path to the tree structure.For a path like this: ".githubworkflowci.yml"*This function produces the following tree: &.github/ %%% workflow/ %%% ci.yml summonerThis functions inserts given  node into the list of existing 7 nodes. The behavior of this function is the following: "It merges duplicating directories.It overrides existing  with the given  in case of duplicates.summoner(Pretty shows the directory tree content.summonerPretty shows tree with options.&summonerExtract , path. Used for sorting in alphabetic order.summonerPrint directories bold.summoner Given tree.summonerPretty output. (c) 2017-2019 KowainikMPL-2.0Kowainik <xrom.xkov@gmail.com>None "#/7;MX_ksummonerType of the source resource.summonercURL link to the source file. Such files will be downloaded by URL. But they are ingored in the offline mode.summoner#File path to the local source file.summonerRaw file text content.summonerThis ' is used in the filesN field of config. It decodes corresponding constructor from the top-level key.summoner5This function fetches contents of extra file sources.summoner>Fetches content of the given extra file source. Doesn't fetch  if the S is U. (c) 2017-2019 KowainikMPL-2.0Kowainik <xrom.xkov@gmail.com>None"#./17;=>?HMUVX_k summonerComplete configurations.summonerIncomplete configurations.summoner%Potentially incomplete configuration.summoner!GHC options to add to each stanzasummoner-Do not upload to the GitHub (even if enabled)summoner Custom files(summonerType family to map )e to the corresponding field. This is a Higher-Kinded Data approach specialised to custom enumeration.)summoner The phase of the configurations.summonerDefault  configurations.summonerIdentifies how to read  data from the .toml file.summoner=Try to retrieve user information from Git config. Return the G with the corresponding filled fields if the information is applicable.summonerFMake sure that all the required configurations options were specified.summonerBRead configuration from the given file and return it in data type.(3(c) 2017-2019 KowainikMPL-2.0Kowainik <xrom.xkov@gmail.com>None "#/7;MX_k@summonerEnum for supported build tools.summoner!Data needed for project creation.summonerrepository namesummonergithub usernamesummonerproject descriptionsummoner full namesummonere-mailsummoneryearsummonerproject categorysummonertype of licensesummoner license textsummonerGitHub repositorysummonerprivate repositorysummonerGitHub Actions CI integrationsummonerTravis CI integrationsummonerAppVeyor CI integrationsummoner is librarysummoner is executablesummoner add testssummoneradd benchmarkssummoner GHC versionssummonercustom prelude to be usedsummonerdefault extensionssummonerdefault GHC optionssummoner.gitignore filesummonerdo not upload to GitHubsummonerTree nodes of extra filessummonerShow  in lowercase.summonerParse  from string. Inverse of .""(c) 2017-2019 KowainikMPL-2.0Kowainik <xrom.xkov@gmail.com>None "#/7;MX_k(c) 2017-2019 KowainikMPL-2.0Kowainik <xrom.xkov@gmail.com>None "#/7;MX_ksummoner" content for a single script file.(c) 2017-2019 KowainikMPL-2.0Kowainik <xrom.xkov@gmail.com>None "#/7;MX_k(c) 2017-2019 KowainikMPL-2.0Kowainik <xrom.xkov@gmail.com>None "#%/7;MX_k5(c) 2017-2019 KowainikMPL-2.0Kowainik <xrom.xkov@gmail.com>None "#/7;MX_k(c) 2017-2019 KowainikMPL-2.0Kowainik <xrom.xkov@gmail.com>None "#/7;MX_ksummoner'Creates a `.cabal` file from the given .(c) 2017-2019 KowainikMPL-2.0Kowainik <xrom.xkov@gmail.com>None "#/7;MX_kfsummoner'Creating tree structure of the project.(c) 2017-2019 KowainikMPL-2.0Kowainik <xrom.xkov@gmail.com>None "#/7;MX_ksummonerGenerate the project.summonerGenerate the project.summoner.Creates the directory and run GitHub commands.*summonerFrom the given  creates the project.+summoner+Init, commit and push repository to GitHub.summoner*Is it interactive or non-interactive mode?summoneroffline mode option.summonerGiven project name.summonerGiven configurations.summoneroffline mode option.summonerGiven project name.summonerGiven configurations.summoneroffline mode option.summonerGiven project name.summonerGiven configurations.(c) 2017-2019 KowainikMPL-2.0Kowainik <xrom.xkov@gmail.com>None"#/07;MPX_k#,summonerOptions parsed with the config commandsummonerCommands parsed with show command-summonerOptions parsed with the script command.summoner Build tool: cabal or stack/summonerFile path to the script0summonerGHC version for this scriptsummonerOptions parsed with the new commandsummoner Project namesummonerIgnore all config files if summonerT/U modesummoner*Interactive or non-interactive mode is on?summonerFile with custom configurationsummoner Config gathered via command-linesummoner Represent all available commandssummonernew command creates a new projectsummonerscript command creates Haskell scriptsummonershow1 command shows supported licenses or GHC versions summonerconfig, command creates the TOML configuration file summonerMain function that parses CLI% commands and runs them using given  handler. summonerRuns summoner in CLI mode.1summonerRun summoner with CLI command summonerRuns config command BUsage: summon config [-f|--file=FILENAME] Create a default TOML configuration file for summoner Available options: -h,--help Show this help text -f,--file=FILENAME Path to the toml file with configurations. If not specified '~/.summoner.toml' will be used by default 2summonerRuns show command. Usage: summon show COMMAND Show supported licenses or ghc versions Available commands: ghc Show available ghc versions license Show available licenses license [LICENSE_NAME] Show specific license text  summoner$Get the customized License text for summon show license NAME command.summonerRuns script command. *Usage: summon script BUILD_TOOL (-g|--ghc GHC_VERSION) (-n|--name FILE_NAME) Create a new Haskell script Available options: -h,--help Show this help text -g,--ghc GHC_VERSION Version of the compiler to be used for script -n,--name FILE_NAME Name of the script file 3summonerRuns new command. 6Usage: summon new PROJECT_NAME [--ignore-config] [--no-upload] [--offline] [-f|--file FILENAME] [--cabal] [--stack] [--prelude-package PACKAGE_NAME] [--prelude-module MODULE_NAME] [with [OPTIONS]] [without [OPTIONS]] summoner By the given ! return the final configurations.4summonercReads and parses the given config file. If no file is provided the default configuration returned.5summonerMain parser of the app.6summonerAll possible commands.7summonerParses options of the config command.8summonerParses options of the show command.9summonerParses options of the script command.:summonerArgument parser for .;summonerParses options of the new command.          (c) 2017-2019 KowainikMPL-2.0Kowainik <xrom.xkov@gmail.com>None "#/7;MX_k  '()*+6,-./012345789:;<=HIJKLMNOPQRSTUVWXYZ`abcdefghijklmnopqrstuvwxyz{|}~     < !""#$%&&'()*+,-./0123456789:;<=>??@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~~                        !"#$%&'()*+,-./01/02345)6789:;< = >?@A B CDEFGHIJKLMNOPQRSTUVsummoner-2.0.0.0-inplace Summoner.AnsiSummoner.GhcVerSummoner.LicenseSummoner.Default Summoner.ModeSummoner.Template.Mempty Summoner.TextSummoner.QuestionSummoner.DecisionSummoner.CustomPrelude Summoner.TreeSummoner.SourceSummoner.ConfigSummoner.SettingsSummoner.Template.StackSummoner.Template.ScriptSummoner.Template.HaskellSummoner.Template.GitHubSummoner.Template.DocSummoner.Template.CabalSummoner.TemplateSummoner.Project Summoner.CLIPaths_summonerSummoner putStrFlushprompt boldDefault errorMessagewarningMessagesuccessMessage infoMessage skipMessageGhcMetagmGhcgmBase gmResolverPvppvpFirst pvpSecondpvpThird pvpFourthGhcVerGhc7103Ghc802Ghc822Ghc844Ghc865Ghc883 showGhcVeroldGhcs parseGhcVer latestLtsbaseVercabalBaseVersionsghcTable $fShowPvp $fEqGhcVer $fOrdGhcVer $fShowGhcVer $fEnumGhcVer$fBoundedGhcVerLicense unLicense LicenseNameMITBSD2BSD3GPL2GPL3LGPL21LGPL3AGPL3Apache20MPL20ISCNONEgithubLicenseQueryNamesparseLicenseNamecustomizeLicense fetchLicensefetchLicenseCustomlicenseShortDescshowLicenseWithDesc$fShowLicenseName$fFromJSONLicense$fEqLicenseName$fOrdLicenseName$fEnumLicenseName$fBoundedLicenseName$fGenericLicenseName $fShowLicense$fGenericLicense$fIsStringLicense defaultGHC defaultCabaldefaultLicenseName defaultOwnerdefaultFullName defaultEmaildefaultTomlFiledefaultConfigFiledefaultDescription currentYeardefaultConfigFileContent ConnectModeOnlineOffline Interactivity InteractiveNonInteractiveisNonInteractive isOffline$fShowInteractivity$fEqInteractivity$fShowConnectMode$fEqConnectMode memptyIfFalseendLinepackageToModulepackageNameValidmoduleNameValidintercalateMap headToUpper tconcatMap YesNoPrompt yesNoTarget yesNoPromptmkDefaultYesNoPromptchoose chooseYesNochooseYesNoBooltargetMessageWithText targetMessage trueMessage falseMessagequeryqueryWithPredicate queryNotNullqueryDefqueryManyRepeatOnFailcheckUniqueNamedoesExistProjectNameDecisionIdkNopYesdecisionToBoolpromptDecisionToBooldecisionsToBools$fMonoidDecision$fSemigroupDecision$fShowDecision $fEqDecision$fEnumDecision$fBoundedDecision$fGenericDecision CustomPrelude cpPackagecpModulecustomPreludeT$fShowCustomPrelude$fEqCustomPreludeTreeFsDirFile traverseTree pathToTree insertTree showBoldTreeshowTree$fGenericTreeFs $fShowTreeFs $fEqTreeFs $fOrdTreeFsSourceUrlLocalRaw sourceCodec fetchSources fetchSource $fShowSource $fEqSourceConfig PartialConfigConfigPcOwner cFullNamecEmailcLicensecGhcVercCabalcStackcGitHub cGhActionscTraviscAppVeycPrivatecLibcExecTestcBenchcPrelude cExtensions cGhcOptions cGitignore cNoUploadcFiles defaultConfig configCodecguessConfigFromGitfinaliseloadFileConfig$fMonoidConfigP$fSemigroupConfigP$fGenericConfigP $fShowConfigP $fEqConfigPToolCabalStackSettings settingsRepo settingsOwnersettingsDescriptionsettingsFullName settingsEmail settingsYearsettingsCategoriessettingsLicenseNamesettingsLicenseTextsettingsGitHubsettingsPrivatesettingsGhActionssettingsTravissettingsAppVeyor settingsIsLib settingsIsExe settingsTest settingsBenchsettingsTestedVersionssettingsPreludesettingsExtensionssettingsGhcOptionssettingsGitignore settingsCabal settingsStacksettingsNoUpload settingsFilesshowTool parseTool$fShowSettings $fShowTool$fEqTool $fEnumTool $fBoundedTool stackFiles scriptFile haskellFiles gitHubFilesdocFiles cabalFilecreateProjectTemplategenerateProjectgenerateProjectInteractivegenerateProjectNonInteractiveinitializeProjectShowOptsGhcList LicenseListNewOptsnewOptsProjectNamenewOptsIgnoreFilenewOptsConnectModenewOptsInteractivitynewOptsConfigFilenewOptsCliConfigCommandNewScriptShowInfosummon summonCli runConfiggetCustomLicenseText runScriptgetFinalConfigversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName text-1.2.4.0Data.Text.InternalTextindent baseVerPvp toGhcMetaghc-prim GHC.TypesBoolTruebaseGHC.Basemempty Data.Text intercalateAnsweryesOrNo printQuestionYN textWithBooltreeFpPtomland-1.2.1.0-8f9612ef02ba32046fb02a49178e5d5f0889548efd81a066e9af89239ceaa6b1 Toml.Bi.Code TomlCodec:-PhasecreateProjectDirectorydoGithubCommands ConfigOpts ScriptOptsscriptOptsToolscriptOptsName scriptOptsGhc runCliCommandrunShowrunNewreadFileConfig cliParser summonerPconfigPshowPscriptPtoolArgPnewP