dTZ      !"#$%&'()*+,-./0123456789: ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Safe4>@GINSafe4>@GINTake the head of a list, or Z if it's empty.Take the tail of a list, or Z if it's empty.Take the init of a list, or Z if it's empty.Take the maximum of a list, or Z if it's empty.JRetrieve the element at the given index, or `Nothing if it's not there.$Find the duplicate values in a list.#Drops the given suffix from a list.Safe4>@GIN This function has a show instance that prints "CANNED" for any contained type. We use it to wrap functional fields in data types that we still want to derive Show instances for. [    [Safe4>@GIN KChecker monad maintains some state and manages errors during type checking. DRun a checker computation, returning the result and new state.<Run a checker computation, ignoreing the final state. Throw a type error in the monad.Get the state from the monad.Put a new state into the monad. \]^     \]^None 4>@GILN How to pretty print a doc.Render the doc with indenting.!Render the doc without indenting.Wrap a _$ in parens if the predicate is true.!Render a doc with the given mode. Convert a _! to a string without indentation. Convert a _ to a string with indentation Put a _ to stdout using the given mode.!Put a _ to stdout using the given mode. !`abcdefg]hijklmnopqrstuvwxyz{|}~_ ! ! !`abcdefgNone 4>@GILN"$A position in a source file. qIf there is no file path then we assume that the input has been read from an interactive session and display ''<interactive>'' when pretty printing."#$%&"#$%&"#$%&"#$%&None4>@GIN'AWrapper for primitive token type that gives it a source position.+3Take the parsec style source position from a token., Take the line number of a token.-"Take the column number of a token.'()*+,-'()*+,-'()*+,-'()*+,-None 4>@GILN .?A parser state that keeps track of the name of the source file.2?A generic parser, parameterised over token and return types.38Run a generic parser, making sure all input is consumed.4Accept the given token.56Accept the given token, returning its source position.6*Accept a token and return the given value.7[Accept a token and return the given value, along with the source position of the token.8'Accept a token if the function returns . 9&Accept a token if the function return 7, also returning the source position of that token.0When we get a parse error, parsec adds multiple  Unexpected8 messages, but we only want to display the first one../0123 Show a token.File name for error messages.Parser to run.Tokens to parse.456789      !"#$%&'()*+,-"#$%&./01234567892./01"#$%&3896745 ./0123456789 None4>@GIN:;Print an error message and exit the compiler, ungracefully.mThis function should be called when we end up in a state that is definately due to a bug in the compiler. : Package name,Function name.EError message that makes some suggestion of what caused the error.::: Safe4>@GIN;Compound names can be extended to create new names. This is useful when generating fresh names during program transformation.<(Build a new name based on the given one.='Split the extension string from a name.?cProduce a flat string from a name. The resulting string should be re-lexable as a bindable name.;<=>?;<=>?>?;<=;<=>? Safe4>@GIN@<Generic environment that maps a variable to a thing of type a. B Named things.CAnonymous things.DLength of the stack.E!A bound occurrence of a variable.FIndex an anonymous binder.GNamed variable.H#A binding occurrence of a variable.IJNo binding, or alternatively, bind a fresh name that has no bound uses.JAnonymous binder.K Named binder.LConvert a list of Hs to an environment.MConvert a list of Hs to an environment.N*Convert a map of things to an environment.O)An empty environment, with nothing in it.P"Construct a singleton environment.QmExtend an environment with a new binding. Replaces bindings with the same name already in the environment.RvExtend an environment with a list of new bindings. Replaces bindings with the same name already in the environment.SCombine two environments. If both environments have a binding with the same name, then the one in the second environment takes preference.TICombine multiple environments, with the latter ones taking preference.U<Check whether a bound variable is present in an environment.V,Lookup a bound variable from an environment.W6Lookup a value from the environment based on its name.X7Lookup a value from the environment based on its index.Y-Yield the total depth of the anonymous stack.@ABCDEFGHIJKLMNOPQRSTUVWXY@ABCDEFGHIJKLMNOPQRSTUVWXYHIJKEFG@ABCDLMNOPQRSTUVWXY@ABCDEFGHIJKLMNOPQRSTUVWXY.   !"#$%&'()*+,,-./00123456789:;<=>?@A B C D E F G H H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ `abcdefghijklmnopqrhishithiuhivhiwhixhiyhizhi{hi|hi}hi~hiVhihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihiab~       !"#$%&''()*+*,-.-/-0-1-2-3-4-5-6-7-89ddcba_0gVWkfFHlIT4cMCjtwvbRd DDC.VersionDDC.Data.ListUtilsDDC.Data.CannedDDC.Control.Monad.CheckDDC.Base.PrettyDDC.Data.SourcePosDDC.Data.TokenDDC.Base.ParserDDC.Base.Panic DDC.Base.Name DDC.Base.EnvsplashversiontakeHeadtakeTailtakeInit takeMaximumindexfindDuplicates stripSuffixCannedCheckMrunCheck evalCheckthrowgetput RenderMode RenderPlain RenderIndentPretty PrettyModepprDefaultModepprpprPrec pprModePrecpprParenpadLrender renderPlain renderIndentputDocputDocLn SourcePossourcePosSource sourcePosLinesourcePosColumnTokentokenToktokenSourcePostakeParsecSourcePos tokenLine tokenColumn ParserState ParseStatestateTokenShow stateFileNameParserrunTokenParserpTokpTokSPpTokAspTokAsSP pTokMaybe pTokMaybeSPpanic CompoundName extendName splitName StringName stringNameEnvenvMapenvStackenvStackLengthBoundUIxUNameBindBNoneBAnonBNamefromList fromNameList fromNameMapempty singletonextendextendsunionunionsmemberlookup lookupNamelookupIxdepthbaseGHC.BaseNothing $fShowCanned $fMonadCheckM$fApplicativeCheckM$fFunctorCheckMwlppr_BfLVsbunhxqAoD0kHyfMecText.PrettyPrint.LeijenDoc $fPretty(,) $fPrettySet $fPretty[] $fPrettyChar$fPrettyInteger $fPrettyInt $fPrettyBool $fPretty()hPutDoc displayIOdisplayS renderCompactgroupnestingcolumnnest linebreaklinetextcharalignhangindentwidthfill fillBreakrationaldoublefloatintegerintboolstringequals backslashdotspacecommacolonsemidquotesquoterbracketlbracketrbracelbraceranglelanglerparenlparenenclosebracketsanglesparensbracesdquotessquotes softbreaksoftline<$$><$><+><>vcathcatfillCatcatvsephsepfillSepsep punctuate encloseSep semiBracestupledlistSLineSTextSCharSEmpty SimpleDoc$fPrettySourcePos$fNFDataSourcePosJust packMessages PrettyMessagePrettyParseErrorTFCo:R:PrettyModeMessage$fPrettyMessageTFCo:R:PrettyModeParseError$fPrettyParseErrorparse_7aUabKPjr5W6Al5Ge35AQlText.Parsec.CharsatisfyanyCharoctDigithexDigitdigitletteralphaNumloweruppertab endOfLinecrlfnewlinespacesnoneOfoneOfText.Parsec.CombinatormanyTill notFollowedByeofanyTokenchainr1chainl1chainlchainrcountendByendBy1sepEndBy sepEndBy1sepBy1sepBymany1 skipMany1betweenoptional optionMaybeoptionchoiceText.Parsec.Prim updateStatesetState modifyStateputStategetStateupdateParserStatesetParserStategetParserStatesetInput setPositiongetInput getPosition parseTestparse runParser runParserTrunPrunPT manyAccumskipManymany tokenPrimEx tokenPrimtoken lookAheadtrytokenslabelslabel<|> parserPlus parserZero parserFailmergeErrorReply parserBind parserReturn parsecMapmkPT runParsecT unexpectedsysUnExpectError unknownErrorParsecTParsecEmptyConsumedErrorOkReply stateUserstatePos stateInputStateunconsStreamText.Parsec.ErrorerrorPos ParseErrorText.Parsec.PossetSourceColumn setSourceLine setSourceNameincSourceColumn incSourceLine sourceColumn sourceLine sourceName SourceNameLineColumn