úÎFôB&     None2579;HState monad providing context, i.e. function we've already called before.datatype for a token returning a random string$Pretoken, aka token as first read in dataype for a key aka token name0datatype for a double representing a probabilityFunction to transform a 8 into a `Tree String` so that it can be pretty-printed. tokToTree 1.0 tok@Compare inside the state monad using only the underlying objectsMake O a monoid so we can append them together nicely (since they do generate text). d(Value "Hello") <> (List [(0.5," you"), (0.5, " me")]) (List [(0.5,"Hello you"), (0.5, "Hello me")])  None2579;1Function to apply a value on both arguments, e.g. between .$ (symbol "\'")0Normalize pre-tokens/corresponding probabilities-Helper function for creating a cdf from a pdfShow as a T.TextPretty-print a ParseErrorStrip a pre-token's nameRead a file in as a TextcAdd a PR for this? Could be useful in Megaparsec idk Allows us to use monoidal addition on parsersNone257Datatype for a semantic error5Throw custom error given by string, within the parser Throw  error within parser!+Throws argument for circular function calls"'Throws error for insufficient arguments#Constant to start s$ Convert a Text to a % for use with a pretty-printer&*big semantics checker that sequences stuff''helper to filter out stuff that doesn't(fTake the head of the list, or throw the appropriate error given which functions we are trying to call.):Access argument, or throw error if the list is too short. *'checker to verify there is at most one  `:return` statement+ Checks that we have at most one  `:return` template in the file,Derived via our show instance;- display a ! nicely with coloration & whatnot !"#$&'()*+,- !"#$&'()*+ !"#$&'()*+,-None257 Generate randomized text from a .5Helper function to compute the cdf when we have a pdf...None257/(Convert the stuff after the number to a 06Build token in tree structure, without concatenating. 12Build the token without concatenating, yielding a $ suitable to be printed as a tree. 2+Given keys naming the tokens, and lists of  , build our 3PSort the keys that we have parsed so that dependencies are in the correct places4.Ordering on the keys to account for dependency/01234/01234/01234None25751Parse a lexeme, aka deal with whitespace nicely. 6*space consumer with awareness for comments76parse a symbol, i.e. string plus surrouding whitespace8Parse a number/probability9Parse an integer:-Make sure definition blocks start un-indented;0Make contents of definition blocks are indented.<Parse between quotes=Parse a keyword> Parse a var? Parse the ? keyword.@ Parse the  `:return` keyword.A&Parse a template name (what follows a  `:define` or B block)CParse template into a  of referents and stringsD*Parse a probability/corresponding templateE Parse an F3 TODO define semantics for variables and all that?GParse a ? blockH Parse the  `:return` blockIParse the program in terms of  and the s to link them. QParse text as a token + context (aka a reader monad with all the other functions)JParse text as token + context Parse text as a token 'f <- readFile "template.mad" parseTok fK8Parse text as a token, suitable for printing as a tree..56789:;<=>?F@ACDEGHI J K56789:;<=>?F@ACDEGHI J K56789:;<=>?F@ACDEGHI J KNone257 Ldatatype for the subcommandsMdatatype for the programN/Parser for command-line options for the programOParser for debug subcommandPParser for the run subcommandQParser for the lint subcommand Main program actionRWraps parser with help parserS7given a parsed record perform the appropriate IO action (Generate randomized text from a template :Generate randomized text from a file conatining a templateParse a template file into the  data typeTBParse a template into a RandTok suitable to be displayed as a treeLUVWXYZM[\]NOPQ RS TLUVWXYZM[\]NOPQ RS T LUVWXYZZM[\]NOPQ RS TNone257    ^      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefYghi&madlang-2.0.1.1-7DvkVztd5muBUWY3liAzB0 Text.MadlibsText.Madlibs.Internal.TypesText.Madlibs.Internal.UtilsText.Madlibs.Cata.SemErrText.Madlibs.Cata.RunText.Madlibs.Ana.ParseUtilsText.Madlibs.Ana.ParseText.Madlibs.Exec.MainContextRandTokListValue SemanticErrorOverloadedReturnsCircularFunctionCallsInsufficientArgsrun parseTokMparseTok runMadlang templateGenrunFile parseFilePreTokKeyProb tokToTree $fEqStateT$fMonoidRandTokName.$ normalizecdfshow'parseErrorPretty'unTok readFile'$fMonoidParsecT customErroroverloadedReturnscircularFunctionCallsinsufficientArgs semErrStarttext',ansi-wl-pprint-0.6.7.3-EqhsHSbxOT2xFHZZJCFwfText.PrettyPrint.ANSI.LeijenDoccheckSemanticssumProbhead'access checkReturn singleReturn$fExceptionSemanticError$fShowSemanticErrormkCdf concatTokbuildTok buildTreebuildsortKeys orderKeyslexeme spaceConsumersymbolfloatinteger nonIndented indentGuardquotekeywordvardefinemainnamebaseGHC.BasereturnpreStrpair inclusionsinclude definitionfinalprogram parseTreeM parseTree SubcommandProgramordersdebugtemplintwrappertemplatemakeTreeDebugRunLintversionrepclInputssubinput