GF      !"#$%&'()*+,-./0123456789:;<=>?@ABCDENone+M6Indicates that some string was not able to be parsed. F Creates a NoParseError out of a G.  Variant of  that uses H and I for (de)serialization. +If the file's content's can't be parsed, a  will be thrown.  Variant of ' that uses JSON for (de)serialization. +If the file's content's can't be parsed, a  will be thrown. Tries to read a configuration from file. If the file is missing, a default instance is written to file and returned. The following exceptions may be thrown:  IOExceptiona, if the IO operations associated with reading or creating the configuration file fail, and An exception of type eN if the configuration file is present, but its contents can't be parsed. F Path of the configuration file.  Parser for the file's contents. Encoder for the default value. If the given configuration file does not exist, a default value will be serialized using this function. JFJ Safe-Inferred8Extracts a result from the current state. Defined as get1 f = liftM f get. -Extracts two results from the current state. /Extracts three results from the current state. .Extracts four results from the current state. .Extracts five results from the current state. -Extracts six results from the current state. /Extracts seven results from the current state. /Extracts eight results from the current state.     None+3MT" A verbatim Text whose Read instance simply returns the read string, as-is. This is useful for askers which ask for strings without quotes. Represents a failure during the running of an asking function. Either the input was incorrect in some way, or the process was aborted by the user. #The input was aborted by the user. /No action was appropriate for the given input. .An incorrect number of parameters was passed. %The parsed value failed a predicate. $The input wasn't able to be parsed. hThe description of an 'ask for user input'-action. The type parameters are the used monad (typically K or ExceptTb), the type of the read value and the type of the error that is thrown in case of failures. 3The components are a prompt, a parser, and a predicate that the parsed value must fulfil. The predicate, being monadic, can perform arbitrarily complex tests, such as checking whether a given date is in the future, whether an item is in a database, whether a file with a given name exists, etc. (The prompt to be displayed to the user.  The parser for the input value. ^The predicate which the input, once read, must fulfill. The Left side is an error message. BA parser which either returns a parsed value or an error message. )A predicate which a value has to fulfil.  A prompt. >An error message indicating that a value failied a predicate. CAn error message indicating that a value wasn't able to be parsed. Prints a string to stderr. !=Prints a string, followed by a newline character, to stderr. "Prints > $ and asks the user to input a line. #SPrints its first argument and, in the same line, asks the user to input a line. $TThe same as prompt, but aborts as soon as the user presses a given key (commonly '\ESC'S). This function temporarily tries to set the buffering mode to NoBuffering via :, which may not be supported. See the documentation of  for details. %Creates a general  with a custom parsing function and a predicate that the parsed value has to pass. If either the parsing or the predicate fail, one of the given error messages is displayed. & Creates an / which only cares about the type of the input. 'ZAn asker which asks for an optional value. If only whitespace is entered (according to L), it returns MQ without further parsing or checking; otherwise, it behaves identically to ). (A parser based on N7. This suffices for the parsing of most data types. )Creates a general  with N as its parser. Using A is perfectly fine for most values, but it has two drawbacks: sThe user input is unpacked into a String and then parsed. This can incur a performance hit for large inputs. 9A Read-instance must be available for the expected type. * Creates an = based on Read which just cares about the type of the input. + Creates an # which takes its input verbatim as OC. The input thus only has to pass a predicate, not any parsing. ,9An asker based on Read which asks for an optional value. -AExecutes an Asker. If the process fails, an exception is thrown. .See -%. Always reads the input from stdin. ask' a = ask a Nothing / Executes an [. If the Text argument is Nothing, the user is asked to enter a line on stdin. If it is Just x, x is taken to be input. 0pRepeatedly executes an ask action until the user enters a valid value. Error messages are printed each time. PRead-instance for  8. Wraps the given value into quotes and reads it a a O. '  !"#$%&'()*+Predicate error message. The predicate. ,-./0PQR3STUVWXYZ[\]^_`a  !"#$%&'()*+,-./0$ !"#$%&'()*+, -./0  !"#$%&'()*+,-./0PQRNone+31*A REPL command, possibly with parameters. 33The short name of the command. Purely informative. 4LReturns whether a string matches a command name. The simplest form is s==@ for some string s, but more liberal matchings are possible. 5A description of the command. 6$The number of parameters, if fixed. 73Runs the command with the input text as parameter. 8~Prints information (the command name, description and, if given, the number of parameters) about a command to the console. 9Splits and trims the input of a command. Any non-whitespace sequence of characters is interpreted as one argument, unless double quotes (") are used, in which case they demarcate an argument. Each argument is parsed as a haskell string literal (quote-less arguments have quotes inserted around them). If the number of quotes in the input is not even, the operating will fail. $Arguments are parsed using parsec's  stringLiterale (haskell-style), meaning that escape sequences and unicode characters are handled automatically. :OTakes a line of text and a command. If the text matches the given command's 4), the command is run with it. If not, M is returned. bVReturns an error message if an unexpected number of parameters have been supplied. cChecks the number of parameters before executing a monadic function. Only AskFailures (and IOExceptions) will be thrown in this function. ;hSurrounds an argument in quote marks, if necessary. This is useful when arguments were extracted via 9u, which deletes quote marks. Quotes are placed around the input iff it doesn't begin with a quote mark ("). 9 and ;i are inverse up to suitable isomorphism, i.e. if 'readArgs orig = (Right res)', then it holds that =readArgs orig = readArgs $ intercalate " " $ map quoteArg res <&Creates a command without parameters. =&Creates a command with one parameter. >'Creates a command with two parameters. ?)Creates a command with three parameters. @(Creates a command with four parameters. A(Creates a command with five parameters. B(Creates a command with four parameters. C?Creates a command with a list of parameters. The first list necc of cs indicates the necessary parameters; the user must at least provide this many. The second list opt contains ms for additional, optional parameters, and may be infinite. If the number of passed parameters exceeds length necc + length opt , or if any " fails, the command returns an . DvTakes an input and tries to run it against a list of commands, trying the out in sequence. The first command whose 4@ returns True is executed. If none of the commands match, NothingFoundFailure is thrown. E=Prints out a list of command names, with their descriptions. defg1234567h89:bThe command name. The given input. "The minimum number of parameters. QThe maximum number of parameters. May be infinite if there is no upper bound. !The kind of error that occurred. cThe command name. ,The raw input (including the command name). @The minimal number of parameters, excluding the command's name. tThe maximal number of parameters, excluding the command's name. This may be infinity if there is no upper bound.  The command. >Result. If too many parameters were passed, this will be a ParamNumFailure. ;<Command name. Command test. Command description. The actual command. =Command name. Command test. Command description  for the first parameter. >Command name. Command test. Command description  for the first parameter.  for the second perameter. ?Command name. Command test. Command description  for the first parameter.  for the second perameter.  for the third parameter. @Command name. Command test. Command description  for the first parameter.  for the second perameter.  for the third parameter.  for the fourth parameter. ACommand name. Command test. Command description  for the first parameter.  for the second perameter.  for the third parameter.  for the fourth parameter.  for the fifth parameter. B Command name. Command test. Command description  for the first parameter.  for the second perameter.  for the third parameter.  for the fourth parameter.  for the fifth parameter.  for the sixth parameter. CCommand name. Command test. Command description  s for the necessary parameters. s for the optional parameters. DThe user's input. The command library. Eij123456789:;<=>?@ABCDE12345678:DE9;<=>?@ABCdgfe1234567h89:bc;<=>?@ABCDEijk       !"#$%&'()*+,-./01234567789:;<=>?@ABCDEFGHIJKLMNOPQORSTUVWOXYOZ[O\]^_`abcdecdfcdgcdhcdicdjcdkcdlcdmcdncdocdpcdqcdrcdstuvwxyz{|}repl-toolkit-0.3.1.0System.REPL.ConfigSystem.REPL.State System.REPLSystem.REPL.Command System.IO hSetBuffering Data.Read readMaybe NoParseErrorreadConfigShowreadConfigJSONreadConfigFileget1get2get3get4get5get6get7get8Verbatim fromVerbatim AskFailure AbortFailureNothingFoundFailure ParamFailurePredicateFailure TypeFailureAsker askerPrompt askerParseraskerPredicateParser Predicate PromptMsgPredicateErrorMsg TypeErrorMsgputErrputErrLnpromptprompt' promptAbortaskerP typeAskerP maybeAskerP readParserasker typeAsker predAsker maybeAskeraskask' askEither untilValidCommand commandName commandTest commandDesc numParameters runCommand commandInforeadArgsrunOncequoteArg makeCommand makeCommand1 makeCommand2 makeCommand3 makeCommand4 makeCommand5 makeCommand6 makeCommandNcommandDispatchsummarizeCommands noParseErrorsystem-filepath-0.4.13.2Filesystem.Path.InternalFilePathbaseGHC.ShowShowGHC.ReadRead$fExceptionNoParseErrorghc-prim GHC.TypesIO GHC.UnicodeisSpace Data.MaybeNothing Text.Read text-1.2.0.4Data.Text.Internal.LazyText$fReadVerbatim$fShowAskFailure$fExceptionAskFailureListLike-4.1.1Data.ListLike.IO appendFile writeFilereadFileinteractputStrLnputStr getContentsgetLine hPutStrLnhPutStrhGetNonBlockinghGet hGetContentshGetLine ListLikeIOparamErr checkParams ParamNumError TooManyParams ExactParamsNoParams++$fExceptionParamNumError$fFunctorCommand